스택 : LIFO(후입선출, Last In First Out)구조, 마지막에 저장된 것을 제일 먼저 꺼내게 된다.
++ 순차적 추가,삭제 하므로 배열에 사용
큐 : FIFO(선입선출, First In First Out)구조, 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다.
++ 자리 이동이 필요없으므로 링크드리스트에 사용

--> 스택

--> 큐
스택은 클래스가 있어서 Stack st = new Stack(); 으로 생성 가능
큐는 인터페이스라 Queue q = new Queue(); 이런식으로 생성 불가능
< 큐 만드는 방법 >
1. Queue를 직접 구현
2. Queue를 구현한 클래스를 사용
우리는 Java API를 사용해서 2.를 사용하자
import java.util.*;
public class Stack_Queue {
public static void main(String[] args) {
Stack st = new Stack();
Queue q = new LinkedList(); // Queue 인터페이스의 구현체인 LinkedList
st.push("0");
st.push("1");
st.push("2");
q.offer("0");
q.offer("1");
q.offer("2");
System.out.println("= Stack = ");
while(!st.empty()) {
System.out.println(st.pop()); // 스택에서 요소 하나를 꺼내
} // 결과 : 2 1 0
System.out.println("= Queue =");
while(!q.isEmpty()) {
System.out.println(q.poll()); // 큐에서 요소 하나를 꺼내
// 결과 : 0 1 2
}
}
}