使用棧實現佇列的下列操作:
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...