そのため、キューを 1 つだけ使用してスタックを実装しようとしましたが、動作しているように見えますが、オンラインで見たソリューションのほとんどが 2 つのキューを使用しているため、何か問題があるかどうかはわかりません。私の実装に問題があるかどうか、誰か教えてもらえますか?
public class MyStack<T> {
/**
* @param args
*/
private Queue<T> q = new LinkedList<T>();
public MyStack(){
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyStack<String> s = new MyStack<String>();
s.push("1");
s.push("2");
s.push("3");
s.push("4");
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
public void push(T s){
q.offer(s);
}
public T pop(){
int n = q.size();
for(int i = 0; i < n-1; i++){
q.offer(q.poll());
}
return q.poll();
}
}
出力:
4
3
2
1
null