由兩個棧組成佇列

2022-04-06 00:31:58 字數 1336 閱讀 2847

【說明】:

本文是左程雲老師所著的《程式設計師面試**指南》第一章中「由兩個棧組成的佇列」這一題目的c++復現。

感謝左程雲老師的支援。

【題目】:

編寫乙個類,用兩個棧實現佇列,支援佇列的基本操作(push、pop、front)。

【思路】:

乙個棧作為資料的壓如棧,乙個棧作為資料的彈出棧。

【編譯環境】:

centos6.7(x86_64)

gcc 4.4.7

【實現】:

1、宣告**

/*

*檔名:twostatoque.h

*摘要:利用兩個棧實現佇列 */

#ifndef _twostatoque_h

#define _twostatoque_h#include

using

namespace

std;

class

twostatoque

;#endif

view code

2、實現**

/*

*檔名:twostatoque.cpp

*摘要:利用兩個棧實現乙個佇列 */

#include

"twostatoque.h

"#include

void twostatoque::push(int

data)

void

twostatoque::pop()

}spop.pop();

return;}

inttwostatoque::front()

}return

spop.top();

}

view code

3、測試**

/*

*檔名:test.cpp

*摘要:兩個棧實現乙個佇列的測試** */

#include

"twostatoque.h

"#include

intmain()

; twostatoque q;

inti;

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

cout

<< "

q.front():

"<< q.front() <

for(;i<6;i++)

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

return0;

}

view code

注:

棧和佇列 由兩個棧組成佇列

題目 編寫乙個類,用兩個棧實現佇列,支援佇列的基本操作 add,poll,peek 基本思路 使用兩個棧stackpush stackpop,stackpush棧負責壓入資料 stackpop棧負責將stackpush中的元素逆序,用於獲取或者彈出棧頂元素。但是有乙個規則 stackpop只有為空的...

由兩個棧組成的佇列

用兩個棧實現佇列,支援佇列的基本操作。第一行輸入乙個整數n,表示對佇列進行的操作總數。下面n行每行輸入乙個字串s,表示操作的種類。如果s為 add 則後面還有乙個整數x表示向佇列尾部加入整數x。如果s為 poll 則表示彈出佇列頭部操作。如果s為 peek 則表示詢問當前佇列中頭部元素是多少。對於每...

1 2由兩個棧組成的佇列

題目 編寫乙個類,用兩個棧實現,支援佇列的基本操作 add poll peek 思路 乙個棧作為壓入棧,另乙個棧作為彈出棧。要做到 如果stackpush要往stackpop中壓入資料,那麼必須一次性把stackpush中的資料全部壓入。如果stackpop不為空,stackpush絕對不能向sta...