Javaは2つのキューで1つのスタックの機能を実現します
1639 ワード
スタックに入る:要素をキューAに入れる:キューAの赤い要素の個数が1であるかどうかを判断し、1に等しい場合、キューを出る.そうでない場合、キューAの要素をキューBに入れ、キューAの要素が1つ残っていることを知ってから、キューAがキューAから出て、キューBの要素をキューAに入れる.
import java.util.*;
/**
* , Push Pop 。
*/
/**
* @author wangzhen
* @param
*
*/
public class DoubleQueueToStack<T> {
//
Queue queue1 = new ArrayDeque();
Queue queue2 = new ArrayDeque();
//
public void push(T t) {
queue1.add(t);
}
//
public T pop() {
if (queue1.size() <= 1) {
return queue1.poll();
} else {
while (queue1.size() > 1) {
queue2.add(queue1.poll());
}
}
while (queue2.size() > 0) {
queue1.add(queue2.poll());
}
return queue1.poll();
}
}