一、實驗目的
1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。
2、學會使用棧和佇列解決實際問題。
二、實驗內容
1、自己確定結點的具體資料型別和問題規模:
分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。
分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。
2、設計演算法並寫出**,實現乙個十將二進位制轉換成2進製數。
3.設計乙個模擬飯堂排隊打飯管理軟體,實現「先來先打飯」的排號叫號管理。
三、編碼
1.順序棧
#include
using namespace std;
const int max_size=10;
class seqstack;
seqstack::seqstack()
void seqstack::push(float x)
float seqstack::pop()
float seqstack::gettop()
int seqstack::isempty()
int main()catch(char *p);
class linkedstack;
linkedstack::linkedstack()
linkedstack::~linkedstack()
}void linkedstack::push(float x)
float linkedstack::pop()
float linkedstack::gettop()
bool linkedstack::isempty()
int main()catch(char *p);
cirqueue::cirqueue()
void cirqueue::enqueue(float x)
float cirqueue::dequeue()
float cirqueue::getqueue()
bool cirqueue::isempty()
int main()catch(char *p);
class linkedqueue;
linkedqueue::linkedqueue()
linkedqueue::~linkedqueue()
}void linkedqueue::enqueue(float x)
float linkedqueue::dequeue()
float linkedqueue::getqueue()
bool linkedqueue::isempty()
int main()catch(char *p);
class transstack
~transstack(){}
void push(int a)
int pop()
};int main()
try;
class queueofcanteen;
queueofcanteen::queueofcanteen()
queueofcanteen::~queueofcanteen()
}int queueofcanteen::gettotal()
void queueofcanteen::enqueue(int x)
int queueofcanteen::dequeue()
int queueofcanteen::getqueue()
int queue(queueofcanteen q)catch(...){}
system("cls");
queue(q);
} if(s=='n'||s=='n') return 0;
return 0;
}int menu(queueofcanteen q) if(c=='n'||c=='n') return 0; return 0; } int main()catch(char *p){ cout<
執行結果:
退出系統時出現以下異常(找不出原因):
四、實驗心得
基本掌握了棧和佇列的基本操作,但是實踐時依然很多bug。
實驗三 棧和佇列的基本操作實現及其應用 順序棧
1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。2 設計演算法並寫出 實現乙個十將二進位制轉...
實驗2棧和佇列的基本操作及應用
棧和佇列的基本操作及應用 1 完成順序棧的設計並測試順序棧各操作 2 完成順序迴圈佇列的設計並測試順序迴圈佇列各操作 3 利用順序棧和順序迴圈佇列完成回文的判斷。include include define maxsize 60 線性表儲存空間的大小 typedef char elemtype ty...
實驗四 棧和佇列的基本操作的實現
1.實驗目的 熟練掌握棧和佇列的抽象資料型別,能在相應的應用問題中正確選用他們,熟練掌握棧和佇列的實現方法 順序和鏈式 兩種儲存結構和基本操作的實現演算法,注意空和滿的判斷條件及他們的描述方法,掌握迴圈佇列和其他順序結構實現上的不同及解決方法,熟悉各種佇列的基本操作在迴圈佇列上的實現。2.實驗內容 ...