用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

原題鏈接 用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

題目描述
用兩個(gè)棧來(lái)實(shí)現(xiàn)一個(gè)隊(duì)列集灌,完成隊(duì)列的Push和Pop操作祟同。 隊(duì)列中的元素為int類型。


首先總結(jié)一下隊(duì)列(queue)以及棧(stack)的特性,在總結(jié)之前給大家推薦一下不錯(cuò)的C++中文在線手冊(cè):英文版:cppreference.com 豺鼻,如果讀起來(lái)費(fèi)勁可以去:中文翻譯:cppreference.com

  • queue:std::queue類是容器適配器沫勿,它給予程序員隊(duì)列的功能--尤其是FIFO(現(xiàn)先進(jìn)先出)數(shù)據(jù)結(jié)構(gòu)挨约。queue在底層容器尾端推入元素味混,從首端彈出元素。要實(shí)現(xiàn)的兩個(gè)操作:
    1. push向隊(duì)列尾部插入元素诫惭;
    2. pop刪除第一個(gè)元素(題主曾經(jīng)吃過(guò)的虧啊翁锡。劃重點(diǎn):C++中pop()無(wú)返回值,題目要求是有返回值的。
  • stack:std::stack類是容器適配器夕土,它給與程序員棧的功能--特別是FILO(先進(jìn)后出)數(shù)據(jù)結(jié)構(gòu)馆衔。棧從被稱作棧頂?shù)娜萜魑膊客茝椩亍V饕某蓡T函數(shù):
    1. top():用來(lái)訪問(wèn)棧頂元素怨绣;
    2. empty():用來(lái)檢查底層的容器是否為空角溃;
    3. push:用來(lái)向棧頂插入元素;
    4. pop():用來(lái)刪除棧頂?shù)脑兀?/li>
    5. size():用來(lái)返回容納的元素?cái)?shù)篮撑。

解題思路:堆棧的特性是先進(jìn)后出减细,隊(duì)列是的特性是先進(jìn)先出。分別標(biāo)記兩個(gè)棧為S1和S2咽扇,push操作就是往S1的入棧操作邪财,pop操作要返回S1棧底的元素,首先要判斷S2是否為空质欲,若為空树埠,則要先將S1的元素從棧頂?shù)綏5兹繅喝隨2中,然后再返回S2的棧頂元素嘶伟;若S2不為空怎憋,則直接返回S2的棧頂元素。(還有一個(gè)異常判斷九昧,當(dāng)S1和S2都為空時(shí)绊袋,應(yīng)拋出異常)

具體代碼如下:

#include<iostream>
#include<stack>
#include<vector>

using namespace std;

class Solution {
public:
    void push(int Node) {
        stack1.push(Node);
    }

    int pop() {
        if(stack1.empty() && stack2.empty()) {
            throw "INPUT Valid";
        }
        else if (stack2.empty()) {
            while (!stack1.empty()) {
                int tem = stack1.top();
                stack1.pop();
                stack2.push(tem);   
            }
        }
        int res = stack2.top();
        stack2.pop();
        return res;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};

void main() {
    Solution s;
    s.push(1);
    s.push(2);
    s.push(3);
    s.push(4);

    s.pop();
    s.push(5);
    s.pop();
    s.pop();
    s.pop();
    s.pop();
    s.pop();
    
    system("pause");
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铸鹰,隨后出現(xiàn)的幾起案子癌别,更是在濱河造成了極大的恐慌,老刑警劉巖蹋笼,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件展姐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡剖毯,警方通過(guò)查閱死者的電腦和手機(jī)圾笨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逊谋,“玉大人擂达,你說(shuō)我怎么就攤上這事〗鹤蹋” “怎么了板鬓?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵悲敷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我穗熬,道長(zhǎng)镀迂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任唤蔗,我火速辦了婚禮探遵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妓柜。我一直安慰自己箱季,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布棍掐。 她就那樣靜靜地躺著藏雏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪作煌。 梳的紋絲不亂的頭發(fā)上掘殴,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音粟誓,去河邊找鬼奏寨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鹰服,可吹牛的內(nèi)容都是我干的病瞳。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼悲酷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼套菜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起设易,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逗柴,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后顿肺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戏溺,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年挟冠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了于购。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袍睡。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡知染,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斑胜,到底是詐尸還是另有隱情控淡,我是刑警寧澤嫌吠,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站掺炭,受9級(jí)特大地震影響辫诅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涧狮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一炕矮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧者冤,春花似錦肤视、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至愿汰,卻和暖如春困后,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衬廷。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工摇予, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泵督。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓趾盐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親小腊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子救鲤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容