我們可以將兩個棧分別設定為輸入棧s1、輸出棧s2
需要輸入(push)時,將元素放入s1
需要輸出/訪問棧頂(pop 或 peek)時,就從s2拿出來
stack的常用函式1、push
入棧操作不用多說,直接push入s1即可
2、pop
我們的目標是從佇列開頭移除並返回元素(即返回最早入隊的元素)
首先檢查s2是否為空:
若s2為空,則將s1的元素依次通過top+pop放入s2
(此時在s2棧頂的就是最早入隊的元素)
若s2不為空,直接取出s2棧頂元素即可
3、peek
原理與pop完全相同,只不過不需要移除目標元素
4、empty
若s1和s2都為空,則表明佇列已空
class myqueue
void push(int x)
int ele;
if(s2.empty()==false)else
ele=s2.top();
s2.pop();
}return ele;
}int peek() else
return s2.top();}}
bool empty()
};/**
* your myqueue object will be instantiated and called as such:
* myqueue* obj = new myqueue();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->peek();
* bool param_4 = obj->empty();
*/
LeetCode 232 用棧實現佇列
使用棧實現佇列的下列操作 push x 將乙個元素放入佇列的尾部。pop 從佇列首部移除元素。peek 返回佇列首部的元素。empty 返回佇列是否為空。示例 myqueue queue new myqueue queue.push 1 queue.push 2 queue.peek 返回 1 qu...
leetcode 232 用棧實現佇列
乙個棧做輸入棧,乙個棧做輸出棧當輸出棧為空,從輸入棧取所有元素放入輸出棧 class myqueue public myqueue void push int x intpop intpeek bool empty 乙個棧作為壓入棧,乙個作為過度棧 每次取壓入棧的棧底,取完再將元素放回去 class...
Leetcode 232 用棧實現佇列 java
使用棧實現佇列的下列操作 push x 將乙個元素放入佇列的尾部。pop 從佇列首部移除元素。peek 返回佇列首部的元素。empty 返回佇列是否為空。示例 myqueue queue new myqueue queue.push 1 queue.push 2 queue.peek 返回 1 qu...