프로그래밍/알고리즘 13

Stack(TwoStack)

public class TwoStack { public static int TYPE_TOP_1 = 0; public static int TYPE_TOP_2 = 1; private StackNode top1, top2; public TwoStack() { top1 = null; //top1 초기화(공백 상태의 스택 top2 = null; //top2 초기화(공백 상태의 스택 } public void push(int type, int value) { //스택의 top에 자료 삽입 StackNode newNode = new StackNode(); //새 노드 생성 newNode.value = value; if (type == TYPE_TOP_1) { newNode.nextLink = top1; //새 노드가 ..

Stack(getMin)

public class ListStack { private StackNode top; //스택의 top public ListStack() { top = null; //top 초기화(공백 상태의 스택 } public void push(int item) { //스택의 top에 자료 삽입 if (isEmpty()) top = new StackNode(item); else { StackNode newNode = new StackNode(item); //새 노드 생성 if (newNode.min > top.min) newNode.min = top.min; newNode.nextLink = top; //새 노드가 top이 가리키던 노드를 가리키도록 함 top = newNode; //top이 새 노드를 가리키도록 변..