1. Stack클래스 생성
class Stack<T>{
}
T타입을 받는 Stack 클래스 생성
private T data;
private Node<T> next;
T타입의 data 생성
다음 Node생성,
public Node(T data){
this.data = data;
}
생성자를 생성한 후, data를 받고 내부 변수에 저장한다.
pop메소드
private Node<T> top;
Node 타입의 top 변수를 선언한다.
public T pop(){
}
public 필드이고 반환값이 T이고, 메소드명은 pop이다.
if(pop==null){
throw new EmptyStackException();
}
만약에 top이 null 이면, 예외처리를 해준다.
T item = top.data;
top = top.next;
return item;
top.data를 T 타입의 변수 item에 담고
top.next를 top에 담는다.
item을 리턴한다.
push 메소드
public void push(T item){
}
push할 T타입의 아이템을 받는다.
Node<T> t = new Node<T>(item);
그 item을 가지고 Node를 생성한다.
t.next = top;
top = t;
top앞에 top을 담고,
top에 t를 넣는다.
peek 메소드
public T peek(){
}
public필드의 반환값이 T이고 메소드이름은 peek이다.
if(top==null){
throw new EmptyStackException();
}
return top.data;
top이 null이면 예외처리 해주고,
그 외의 경우에는 top.data를 리턴한다.
isEmpty 메소드
isEmpty를 사용하면 top==null인지 true/false를 반환하게 된다.