LeetCode 232 用棧實現佇列

2022-06-25 18:00:15 字數 1011 閱讀 5923

我們可以將兩個棧分別設定為輸入棧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...