Stack 두개를 이용하여 Queue구현하기
- 자바
import java.util.Stack;
class Queue<T> {
Stack<T> inStack;
Stack<T> outStack;
public Queue() {
this.inStack = new Stack<>();
this.outStack = new Stack<>();
}
public void enqueue(T value) {
inStack.add(value);
}
public T dequeue() {
if (!inStack.isEmpty()) {
while(!inStack.isEmpty()) {
outStack.add(inStack.pop());
}
}
return outStack.pop();
}
@Override
public String toString() {
return "Queue{" +
"inStack=" + inStack +
", outStack=" + outStack +
'}';
}
}
public class Main {
public static void main(String[] args) {
Queue<Integer> queue = new Queue<>();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);
System.out.println(queue);
System.out.println(queue.dequeue());
}
}
'자료구조 & 알고리즘 관련 > 자료구조&알고리즘' 카테고리의 다른 글
[BOJ 2346] 백준 풍선 터뜨리기 자바 (0) | 2024.07.21 |
---|---|
Queue 2개로 Stack구현하기 (0) | 2024.02.03 |
자료구조란? (0) | 2023.12.06 |
링크드리스트 노드의 구현 (0) | 2022.11.28 |
단방향 링크드리스트 구현 (0) | 2022.11.28 |