2 利用棧實現佇列 LeetCode232

2021-10-09 09:54:32 字數 992 閱讀 4924

使用棧實現佇列的下列操作:

push(x) – 將乙個元素放入佇列的尾部。

pop() – 從佇列首部移除元素。

peek() – 返回佇列首部的元素。

empty() – 返回佇列是否為空。

示例:myqueue queue = new myqueue();

queue.push(1);

queue.push(2);

queue.peek(); // 返回 1

queue.pop(); // 返回 1

queue.empty(); // 返回 false

說明:你只能使用標準的棧操作 – 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。

你所使用的語言也許不支援棧。你可以使用 list 或者 deque(雙端佇列)來模擬乙個棧,只要是標準的棧操作即可。

假設所有操作都是有效的 (例如,乙個空的佇列不會呼叫 pop 或者 peek 操作)。

/*

開闢乙個臨時棧,push操作時,先將資料棧中的資料加入到臨時棧中,然後將x加入到資料棧中

最後將臨時棧中的資料再push到資料棧中

*/#include

#include

using

namespace std;

class

myqueue

void

push

(int x)

temp.

push

(x);

while

(!tmep.

empty()

)}intpop()

intpeek()

bool

empty()

private

: stack<

int> data;};

intmain

(void

)

利用雙棧實現佇列結構

用陣列封裝的佇列結構 public class mystack public void push int val throws exception data top val top public intpop throws exception top return this data top pub...

佇列實現棧棧實現佇列

佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...

佇列實現棧,棧實現佇列

兩個佇列實現棧 每次進入乙個佇列,取出得時候,把所有元素進入另乙個佇列,只留下乙個元素,以此實現棧的先進後出 filo package algorithmbymyself import j a.util.linkedlist import j a.util.queue 用兩個佇列實現乙個棧 publ...