使用一個隊列完成一個棧
阿新 • • 發佈:2018-01-26
一個隊列 bool clas tac rem peek ron 使用 com
2018-01-25 21:11:02
題目描述:
問題求解:
隊列的特點是先進先出,棧的特點是先進後出。如果在push的時候,對隊列中的元素進行reverse,那麽就可以很容易的進行pop(),top(),empty()等操作。
class MyStack { Queue<Integer> queue; /** Initialize your data structure here. */ public MyStack() { queue = new LinkedList<>(); } /** Push element x onto stack. */ public void push(int x) { int size = queue.size(); queue.offer(x); while (size-- > 0) { queue.offer(queue.poll()); } } /** Removes the element on top of the stack and returns that element. */ public int pop() { return queue.poll(); } /** Get the top element. */ public int top() { return queue.peek(); } /** Returns whether the stack is empty. */ public boolean empty() { return queue.isEmpty(); } }
使用一個隊列完成一個棧