Stack의 4가지 기능
- pop() : 맨 마지막에 넣은 데이터를 가져오면서 지움
- push() : 새로운 데이터를 맨 위에 쌓아올림
- peek() : 맨 마지막 데이터를 확인
- isEmpty() : 스택에 데이터가 있는지 없는지 확인
코드로 구현해보기
import java.util.EmptyStackException;
class Stack<T> {
class Node<T> {
private T data;
private Node<T> next;
public Node(T data) {
this.data = data;
}
}
private Node<T> top;
public T pop() {
if (top == null) {
throw new EmptyStackException();
}
T itme = top.data;
top = top.next;
return item;
}
public void push(T item) {
Node<T> t = new Node<T>(item);
t.next = top;
top = t;
}
public T peek() {
if (top == null) {
throw new EmptyStackException();
}
return top.data;
}
public boolean isEmpty() {
return top == null;
}
}
public class Test {
public static void main (String[] args) {
Stack<Integer> s = new Stack<Integer>();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.peek());
System.out.println(s.pop());
System.out.println(s.isEmpty());
System.out.println(s.pop());
System.out.println(s.isEmpty());
}
}
/*
4
3
2
2
false
1
true
*/
'Algorithm > Java class library package' 카테고리의 다른 글
Hash Table에 대해 알아보고 Java로 구현해보기 (0) | 2021.09.03 |
---|---|
Java의 ArrayList에 대해 알아보고 구현하기 (0) | 2021.08.22 |
Java의 StringBuilder에 대해 알아보고 구현하기 (0) | 2021.08.22 |
Java에서 Queue 직접 구현해보기 (0) | 2021.07.31 |