封裝乙個棧,佇列

2021-08-21 12:55:11 字數 1912 閱讀 7161

一、棧:

特殊的線性表,只能在其一端進行資料插入和刪除操作,

特性:先進後出 fifo

2、模擬實現乙個棧

# include# include# include# include# include//引用前面自己實現的順序表的類的標頭檔案

using namespace std;

//template>

//class t:容器型別 class conainer:底層空間,此時container若是想要給定

//乙個預設的引數,必須例項化的時候需要給定乙個具體的型別,不能直接給乙個

//vector,因為vector是乙個模板類,不是具體的型別,此時只能給成vectortemplateclass container

{};//模板類的名字

//templateclass container>

templateclass container=vector>

//第二個模板引數:模板類。

//templateclass container:模板的模板引數:模板類的引數列表,不需要給出模板類的名字,此時

//是乙個模板的型別而不是模板類,此時的vector也是模板類,此時兩個模板類(container和vector)的引數個數也應該相同

//container是乙個模板類,只接收乙個模板類的引數,而且不用把這個引數給出來

//若是此處給定模板的模板類函式,則後面例項化為物件,也必須給定模板類函式containerclass stack

void push(const t& data)

void pop()

t& top()

const t& top()const

size_t size()const

private:

container _con;//建立乙個容器的物件//container是乙個具體的型別

//container_con;//container是乙個模板類

};void test()

int main()

二、模擬實現乙個佇列

佇列是乙個特殊的線性結構:只有兩種操作:在一端進行資料的插入(隊尾),在另一端進行資料的刪除操作(隊頭)

從隊頭出佇列,從隊尾入佇列

2、封裝乙個佇列

使用模板函式封裝乙個佇列

# include# include# include# include# includeusing namespace std;

//使用模板引數來實現乙個佇列

template>

//依靠底層封裝的list順序表,重新封裝乙個

class queue

void push(const t& data)

void pop()

t& front()

const t& front()const

t& back()

const t& back()const

size_t size()const

bool empty()const

private:

container _con;

};void test()

void push(const t& data)

void pop()

t& front()

const t& front()const

t& back()

const t& back()const

size_t size()const

bool empty()const

private:

container_con;//通過具體的型別定義乙個容器

};void test()

int main()

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

棧佇列 使用兩個棧實現乙個佇列 思路 1.入佇列,是將資料放入棧1 2.出佇列,是將棧1資料出棧後依次存入棧2,然後棧2進行出棧 這樣就模擬了佇列的 先進先出 思想1.stack.h pragma once include include include 棧實現 typedef int sdatat...

兩個棧模擬乙個佇列 兩個佇列模擬乙個棧

解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...

兩個棧實現乙個佇列 兩個佇列實現乙個棧

這兩個題的思路比較相似。棧的特點是 先進後出 佇列的特點是 先進先出 不要怕!用兩個棧實現乙個佇列很簡單 再將top元素push到stack 2中,然後將stack 1 pop一次直到stack 1剩下最後乙個元素,這個就是最先push進去的,我們把它pop掉就可以了,同理,我們求queue的fro...