用兩個棧實現佇列的功能

2021-08-20 07:06:17 字數 558 閱讀 7140

實現方法:

假設兩個棧 a b都為空,可以認為棧a提供入佇列的功能,棧b提供出佇列的功能。

入佇列:入棧a

出佇列:

* 如果棧b不為空,直接彈出棧b的資料。

* 如果棧b為空,則依次彈出棧a的資料,放入棧b中,再彈出棧b的資料。

實現如下:

#include

#include

using

namespace

std;

template

struct myqueue

t front()

}return s2.top();

}void pop()

}if (!s2.empty())

s2.pop();

}stack

s1;stack

s2;};int main()

for (i = 0; i < 10; ++i)

getchar();

return

0;}

用兩個棧實現佇列 及 兩個佇列實現棧功能

最近筆試遇到這個問題,感覺蠻有意思的,分析看看 一 問 用兩個棧實現乙個佇列的功能,要求給出演算法和思路 示意圖 答 設2個棧a,b,初始化為空 入隊 將新元素push入棧a 出隊 1 判斷棧b是否為空 2 如果不為空,則將棧a中所有元素依次pop出並push到棧b 3 將棧b的棧頂元素pop出 說...

用兩個棧實現佇列 用兩個佇列實現棧

劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...

用兩個棧實現佇列與用兩個佇列實現棧

pragma once要在標頭檔案的最開始加入這條雜注,就能夠保證標頭檔案只被編譯一次 pragma once是編譯器相關的,就是說即使這個編譯系統上有效,但在其他編譯系統也不一定可以,不過現在基本上已經是每個編譯器都有這個雜注了。用兩個棧實現佇列 每個模板函式的實現都需要加template模板列表...