나중에 집어 넣은 데이터가 먼저 나오는 자료구조입니다.
value와 밑의 Node를 가리키는 prev로 구성된 Node를 만들어 사용합니다.
class Node {
int value;
Node prev;
Node(int value) {
this.value = value;
}
}
public class Stack {
private Node top;
public Stack(int value) {
Node newNode = new Node(value);
top = newNode;
}
}
public void push(int value) {
Node newNode = new Node(value);
if (top == null) {
top = newNode;
} else {
newNode.prev = top;
top = newNode;
}
}
public Node pop() {
if (top == null) {
return null;
}
Node temp = top;
top = top.prev;
temp.prev = null;
return temp;
}
public Node peek() {
return top;
}
public boolean empty() {
return top==null;
}