
스택 용어
- 위치
- top: 삽입과 삭제가 일어나는 위치를 뜻한다.- 연산
- push: top 위치에 새로운 데이터를 삽입하는 연산이다.
- pop: top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산이다.
- peek: top 위치에 현재 있는 데이터를 단순 확인하는 연산이다.

큐 용어
- rear: 큐에서 가장 끝 데이터를 가리키는 영역이다.
- front: 큐에서 가장 앞의 데이터를 가리키는 영역이다.
- add: rear 부분에 새로운 데이터를 삽입하는 연산이다.
- poll: front 부분에 있는 데이터를 삭제하고 확인하는 연산이다.
- peek: 큐의 맨 앞(front)에 있는 데이터를 확인할 때 사용하는 연산이다.
💡 우선순위 큐도 있다!
우선순위 큐는 값이 들어간 순서와 상관 없이 우선순위가 높은 데이터가 먼저 나오는 자료구조이다. 큐 설정에 따라 front에 항상 최댓값 또는 최솟값이 위치한다. 우선순위 큐는 일반적으로 힙(heap)을 이용해 구현하는데 힙은 트리 종류 중 하나이다.
java.util 패키지의 Stack 클래스를 import한다.import java.util.Stack;
Stack 객체를 생성한다.Stack<String> stack = new Stack<>();
push 메소드를 사용한다.stack.push("데이터1");
stack.push("데이터2");
stack.push("데이터3");
pop 메소드를 사용한다.String data = stack.pop();
System.out.println(data); // "데이터3"
pop 메소드는 스택에서 가장 위에 있는 데이터를 꺼내고, 해당 데이터를 반환한다. 스택에서 꺼낸 데이터는 스택에서 제거된다.peek 메소드를 사용할 수 있다. peek 메소드는 스택의 가장 위에 있는 데이터를 반환하지만, 스택에서 제거하지는 않.ㄷ다.String topData = stack.peek();
System.out.println(topData); // "데이터2"
peek 메소드를 사용하면 스택의 가장 위에 있는 데이터를 확인할 수 있다.isEmpty 메소드를 사용할 수 있다.boolean isEmpty = stack.isEmpty();
System.out.println(isEmpty); // false
isEmpty 메소드는 스택이 비어있으면 true를, 데이터가 있는 경우 false를 반환한다.java.util 패키지의 Queue 인터페이스를 import 해야 한다.import java.util.Queue;
LinkedList를 사용하여 Queue 객체를 생성한다.Queue<String> queue = new LinkedList<>();
offer 메소드를 사용한다.queue.offer("데이터1");
queue.offer("데이터2");
queue.offer("데이터3");
poll 메소드를 사용한다.String data = queue.poll();
System.out.println(data); // "데이터1"
poll 메소드는 큐에서 가장 앞에 있는 데이터를 꺼내고, 해당 데이터를 반환합니다. 큐에서 꺼낸 데이터는 큐에서 제거된다.peek 메소드를 사용할 수 있다. peek 메소드는 큐의 가장 앞에 있는 데이터를 반환하지만, 큐에서 제거하지는 않는다.String frontData = queue.peek();
System.out.println(frontData); // "데이터2"
isEmpty 메소드를 사용할 수 있다.boolean isEmpty = queue.isEmpty();
System.out.println(isEmpty); // false
isEmpty 메소드는 큐가 비어있으면 true를, 데이터가 있는 경우 false를 반환한다.