棧和佇列的基本操作實現及其應用

2021-08-19 09:07:52 字數 2939 閱讀 2039

實驗2:棧和佇列的基本操作實現及其應用

一、實驗目的

1、   熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。

2、      學會使用棧和佇列解決實際問題。

二、實驗內容

1、自己確定結點的具體資料型別和問題規模:

分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。

分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。

順序棧#include

using namespacestd; 

const intstacksize=10; 

class seqstack 

~seqstack(){} 

void push(int x); 

int pop(); 

int gettop(); 

int empty(); 

private: 

int data[stacksize]; 

int top; 

}; 

voidseqstack::push(int x) 

intseqstack::pop() 

intseqstack::gettop() 

intseqstack::empty() 

void main() 

#include

struct node 

;  classlinkstack 

~linkstack(){} 

void push(int x); 

int pop(); 

int gettop() 

int empty(); 

private: 

node *top; 

}; 

voidlinkstack::push(int x) 

intlinkstack::pop() 

intlinkstack::empty() 

void main() 

#include

using namespacestd; 

const intqueuesize=100; 

class cirqueue 

~cirqueue(){} 

void enqueue(int x); 

int dequeue(); 

int getqueue(); 

int empty(); 

private: 

int data[queuesize]; 

int front,rear; 

}; 

void cirqueue::enqueue(intx) 

intcirqueue::dequeue() 

intcirqueue::getqueue() 

intcirqueue::empty() 

void main() 

#include

using namespacestd; 

struct node 

;  classlinkqueue 

;  linkqueue::linkqueue() 

linkqueue::~linkqueue() 

}  voidlinkqueue::enqueue(int x) 

intlinkqueue::dequeue() 

intlinkqueue::getqueue() 

intlinkqueue::empty() 

void main() 

catch(char *wrong) 

cout<<"隊頭元素為:"catch(char *wrong) 

cout<<"隊頭元素為:"#include

const intstacksize=100;

class seqstack

~seqstack(){}

int empty();

int data[stacksize];

int top;

};int main()

while(x!=0);

cout<<"該數字的二進位制為:"while (s.top!=-1);

cout}2、設計演算法並寫出**,實現乙個十將二進位制轉換成2進製數。

3、選做題(*)

設計乙個模擬飯堂排隊打飯管理軟體,實現「先來先打飯」的排號叫號管理。

三、實驗步驟

1、依據實驗內容分別說明實驗程式中用到的資料型別的定義;

2、相關操作的演算法表達;

3、完整程式;

4、總結、執行結果和分析。

5、總體收穫和不足,疑問等。

四、實驗要求

1、   按照資料結構實驗任務書,提前做好實驗預習與準備工作。

2、   加「*」為選做題。做好可加分。

3、   嚴格按照資料結構實驗報告模板和規範,及時完成實驗報告。

4、   在個人主頁上發文章提交作業。

5、   實驗課會抽查3-5人,希望你可以被查到!

#include

struct node 

;  classseqstack 

~seqstack(){} 

void push(int x); 

int pop(); 

private: 

node *top; 

}; 

voidseqstack::push(int x) 

intseqstack::pop() 

int main() 

try 

catch(char *wrong) 

實驗三 棧和佇列的基本操作實現及其應用

一 實驗目的 1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。二 實驗內容 1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。2 設計演算法並...

實驗4 棧和佇列的基本操作實現及其應用

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。三 源程式 五 實驗心得 棧特點就是先進後出 後進先出 從乙個口進去,從同乙個口出去。棧是限定僅在尾...

實驗4 棧和佇列的基本操作實現及其應用

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。三 源程式 五 實驗心得 佇列是特殊的線性表,佇列是只允許在一端進行插入操作,在另一端進行刪除...