LeetCode225. 用佇列實現棧
阿新 • • 發佈:2019-01-04
使用佇列實現棧的下列操作:
- push(x) --元素 x 入棧
- pop() -- 移除棧頂元素
- top() -- 獲取棧頂元素
- empty() --返回棧是否為空
注意:
- 你只能使用佇列的基本操作-- 也就是
push to back
,peek/pop from front
,size
, 和is empty
這些操作是合法的。 - 你所使用的語言也許不支援佇列。 你可以使用 list 或者 deque (雙端佇列) 來模擬一個佇列 , 只要是標準的佇列操作即可。
- 假設所有操作都是有效的 (例如, 對一個空的棧不會呼叫 pop 或者 top 操作)。
思路:棧結構內元素先進後出,而佇列內元素先進先出,只需讓元素進入佇列時每次都成為佇列頭,即可維持先進後出的特點。
class MyStack { private ArrayDeque<Integer> queue; public MyStack() { queue=new ArrayDeque<Integer>(); } public void push(int x) { queue.addFirst(x); } public int pop() { return queue.pollFirst(); } public int top() { return queue.getFirst(); } public boolean empty() { if(queue.isEmpty()) { return true; } return false; } } /** * Your MyStack object will be instantiated and called as such: * MyStack obj = new MyStack(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.top(); * boolean param_4 = obj.empty(); */