棧 佇列 力扣 232 用棧實現佇列

2022-10-11 14:12:10 字數 1491 閱讀 7293

實現myqueue類:

說明:

示例 1:

輸入:

["myqueue", "push", "push", "peek", "pop", "empty"]

[, [1], [2], , , ]

輸出:[null, null, null, 1, 1, false]

解釋:myqueue myqueue = new myqueue();

myqueue.push(1); // queue is: [1]

myqueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)

myqueue.peek(); // return 1

myqueue.pop(); // return 1, queue is [2]

myqueue.empty(); // return false

因為棧是先進後出,所以要想實現佇列的先進先出,只用乙個棧記錄並不夠,使用第二個棧來倒轉記錄,並實現佇列的pop隊首元素

兩個棧:in實現入佇列操作,out實現出佇列。

因為棧不能pop最隊首元素,需要pop的時候。如果out為空,就把in的元素依次出棧並在out中壓棧。

如:如佇列順序為[3,2,1]  則  in:[1,2,3],out==>in:,out=[3,2,1]

如果不為空,out自行出棧,而後面入佇列的元素進入in,也不會妨礙到整個入佇列元素的順序和其出佇列的操作。

**

class myqueue 

}public:

myqueue()

void push(int x)

int pop()

int t=out.top();

out.pop();

return t;

}int peek()

int t=out.top();

return t;

}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();

*/

力扣 232 用棧實現佇列

一 題目描述 使用棧實現佇列的下列操作 示例 myqueue queue new myqueue queue.push 1 queue.push 2 queue.peek 返回 1 queue.pop 返回 1 queue.empty 返回 false說明 二 解題思路 建立兩個棧a和b。棧a專門用...

力扣232號題 用棧實現佇列

push x 將乙個元素放入佇列的尾部。pop 從佇列首部移除元素。peek 返回佇列首部的元素。empty 返回佇列是否為空。myqueue queue new myqueue queue.push 1 queue.push 2 queue.peek 返回 1 queue.pop 返回 1 que...

232 用棧實現佇列 225 用佇列實現棧

用棧實現佇列 佇列是先進先出,實現佇列的最直觀的方法是用鍊錶。但本題是要求使用棧。本題兩個stack相互倒,負負得正 class myqueue def init self self.instack self.outstack defpush self,x def pop self if len s...