[DataStructure] Stack & Queue
2556 ワード

まず,StackとQueueは線形データ構造である.
Stack

Queue

2つのスタック実装キューを使用

A,B順のデータをスタックに入れて取り出すとB,Aとなる.
これを順番にスタックに戻し、外すとA、Bになります.
内部動作は異なりますが、結果は入る順番に現れるキューです.
他の人が作成した関連コードが参考になります.
package Stack;
import java.util.Stack;
/**
* created by victory_woo on 2020/05/06
* Stack 2개를 이용해서 Queue 구현하기.
*/
public class StackWithQueue {
public static void main(String[] args) {
StackQueue<String> queue = new StackQueue<>();
queue.enQueue("A");
queue.enQueue("B");
queue.enQueue("C");
System.out.println(queue.deQueue());
System.out.println(queue.deQueue());
System.out.println(queue.deQueue());
}
static class StackQueue<T> {
private Stack<T> inBox;
private Stack<T> outBox;
StackQueue() {
inBox = new Stack<>();
outBox = new Stack<>();
}
void enQueue(T item) {
inBox.push(item);
}
Object deQueue() {
if (outBox.isEmpty()) {
while (!inBox.isEmpty()) {
outBox.push(inBox.pop());
}
}
return outBox.pop();
}
}
}
Reference
この問題について([DataStructure] Stack & Queue), 我々は、より多くの情報をここで見つけました https://velog.io/@jaeyunn_15/DataStructure-Stack-Queueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol