實(shí)驗(yàn)二十棧與隊(duì)列的操作

上傳人:liu****han 文檔編號:59904446 上傳時(shí)間:2022-03-05 格式:DOC 頁數(shù):7 大?。?9.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
實(shí)驗(yàn)二十棧與隊(duì)列的操作_第1頁
第1頁 / 共7頁
實(shí)驗(yàn)二十棧與隊(duì)列的操作_第2頁
第2頁 / 共7頁
實(shí)驗(yàn)二十棧與隊(duì)列的操作_第3頁
第3頁 / 共7頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《實(shí)驗(yàn)二十棧與隊(duì)列的操作》由會員分享,可在線閱讀,更多相關(guān)《實(shí)驗(yàn)二十棧與隊(duì)列的操作(7頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、實(shí)驗(yàn)二十 棧與隊(duì)列的操作 一、實(shí)驗(yàn)?zāi)康? 棧與隊(duì)列是重要的數(shù)據(jù)結(jié)構(gòu),通過本實(shí)驗(yàn)要求掌握以下內(nèi)容: 1. 棧結(jié)構(gòu)的特點(diǎn)及操作方法,能用面向?qū)ο蟮姆椒ǘx棧結(jié)構(gòu)。 2. 隊(duì)列結(jié)構(gòu)的特點(diǎn)及操作方法,能用面向?qū)ο蟮姆椒ǘx并檢驗(yàn)隊(duì)列。 二、實(shí)驗(yàn)內(nèi)容 1. 定義存儲字符的棧類,要求如下: 1) 使用教材例7.8中定義的順序棧模板,用字符作參數(shù)定義字符棧,完成壓棧和出棧操作,順序輸入26個字母,輸出為逆序。 2) 修改順序棧類,當(dāng)棧滿時(shí),執(zhí)行StackFull()操作:動態(tài)創(chuàng)建一個是原來的??臻g的兩倍的空間,把原來?xiàng)V械膬?nèi)容放入新棧,再刪除原??臻g。(這是C++標(biāo)準(zhǔn)模板庫中的做法。)

2、 #include #include using namespace std; templateclass Stack{ int top; //棧頂指針(下標(biāo)) T *elements; //動態(tài)建立數(shù)值的指針 int maxSize; //棧最大允納的元素個數(shù) public: Stack(int=20);

3、 //棧如不指定大小,設(shè)為20元素 ~Stack(){delete[] elements;} void Push(const T &data); //壓棧 T Pop(); //出棧,top減1 T GetElem(int i); //取數(shù)據(jù),top不變 void StackFull(); //堆棧加倍 void MakeEmpty(){top= -1;}

4、 //清空棧 bool IsEmpty() const{return top== -1;} //判棧是否空 bool IsFull() const{return top==maxSize-1;} //判棧是否滿 void PrintStack(); //輸出棧內(nèi)所有數(shù)據(jù) }; template Stack::Stack(int maxs){ maxSize=maxs; top=-1; elements=new T [maxS

5、ize]; //建立??臻g assert(elements!=0); //分配不成功,結(jié)束程序 } template void Stack::PrintStack(){ for(int i=0;i<=top;i++) cout< void Stack::Push(const T &data){ if(IsFull()) { co

6、ut<<"棧滿"< T Stack::Pop(){ assert(!IsEmpty()); //棧已空則不能退棧,退出程序 return elements[top--]; //返回棧頂元素,同時(shí)棧頂指

7、針減1 } template T Stack::GetElem(int I){ assert(i<=top&&i>=0); //超出棧有效數(shù)據(jù)范圍,退出程序 return elements[i]; //返回棧頂元素,top不變 } template void Stack::StackFull(){ //堆棧加倍 T * el=elements; int i=maxSize,j; maxSize*=2;

8、 elements=new T [maxSize]; //建立??臻g assert(elements!=0); //分配不成功結(jié)束程序 for(j=0;j

9、,'n','o', 'p','q','r','s','t','u','v','w','x','y'},b[25]; Stack istack(5); for(i=0;i<25;i++) istack.Push(a[i]); istack.PrintStack(); i=0; while(!istack.IsEmpty()){ b[i]=istack.Pop(); i++; } if(istack.IsEmpty()) cout<<"???<

10、<'\t';//注意先進(jìn)后出 cout< #include

11、assert> using namespace std; templateclass DeQueue; templateclass Node{ T info; Node *link; public: Node(T data=0,Node *l=NULL); friend class DeQueue; }; template Node::Node(T data,Node *l){ info=data; link=l; } templatecla

12、ss DeQueue{ Node *front,*rear; public: DeQueue(){rear=front=NULL;} //構(gòu)造一個空鏈隊(duì) ~DeQueue(){MakeEmpty();} bool IsEmpty(){ return front==NULL;} //隊(duì)空否? void EnQueFront(const T &data); //進(jìn)隊(duì) void EnQueRear(const T &data); //進(jìn)隊(duì) T DeQue(); //出隊(duì) T GetFront();

13、 //查看隊(duì)頭數(shù)據(jù) void MakeEmpty(); //置空隊(duì)列,與析構(gòu)邏輯上不同,物理上一樣 }; templatevoid DeQueue::MakeEmpty(){ Node *temp; while(front!=NULL){ temp=front;front=front->link;delete temp; } } templatevoid DeQueue::EnQueFront(const T &data){ if(front==NULL) fr

14、ont=rear=new Node(data,NULL); else front=new Node(data,front); } templatevoid DeQueue::EnQueRear(const T &data){ if(front==NULL) front=rear=new Node(data,NULL); else rear=rear->link=new Node(data,NULL); } templateT DeQueue::DeQue(){ assert(!IsEmp

15、ty()); Node *temp=front; T data=temp->info; front=front->link; delete temp; return data; } templateT DeQueue::GetFront(){ assert(!IsEmpty()); return front->info; } int main(){ int i; DeQueue que; char str1[]="abcdefghijklmn

16、opqrstuvwxyz"; cout<<"從隊(duì)尾入隊(duì)"<

17、e()<<'\t'; //先進(jìn)先出 cout<

18、1,2,3,4表示。使用棧來存儲每個行政區(qū)著色結(jié)果,棧的下標(biāo)與行政區(qū)號相同。 [要求]讀懂下面的程序,并為主程序添加注釋。再設(shè)計(jì)一個行政區(qū)圖,檢驗(yàn)程序是否有錯。 0 1 2 3 4 5 6 7 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 2 1 1 0 1 1 0 0 0 3 0 1 1 0 1 1 0 0 4 1 0 1 1 0 1 1 0 5 0 0 0 1 1 0 1 0 6 0 0 0 0 1 1 0 0

19、7 0 0 0 0 0 0 0 0 圖1.12 關(guān)系矩陣圖 1 2 3 4 5 6 7 0 圖1.11 華東行政區(qū)圖 #include #include using namespace std; templateclass Stack{ int top; //棧頂指針(下標(biāo)) T *elements;

20、 //動態(tài)建立的數(shù)值 int maxSize; //棧最大允納的元素個數(shù) public: Stack(int=20); //棧的默認(rèn)大小為20個元素 ~Stack(){delete[] elements;} void Push(const T &data); //壓棧 T Pop(); //彈出,top減1

21、 T GetElem(int i); //取數(shù)據(jù),top不變 void StackFull(); //堆棧加倍 void MakeEmpty(){top= -1;} //清空棧 bool IsEmpty() const{return top== -1;} //判棧空 bool IsFull() const{return top==maxSize-1;} //判棧滿 void PrintStack();

22、 //輸出棧內(nèi)所有數(shù)據(jù) }; template Stack::Stack(int maxs){ maxSize=maxs; top=-1; elements=new T [maxSize]; //建立??臻g assert(elements!=0); //分配不成功結(jié)束程序 } template void Stack::PrintStack(){ for(int i=0;i<=top;i++) co

23、ut< void Stack::Push(const T &data){ if(IsFull()){ cout<<"棧滿"< T Stack::Pop(){ as

24、sert(!IsEmpty()); //棧已空則不能退棧,退出程序 return elements[top--]; //返回棧頂元素,同時(shí)棧頂指針減1 } template T Stack::GetElem(int i){ assert(i<=top&&i>=0); //超出棧有效數(shù)據(jù)則錯,退出程序 return elements[i]; //返回棧頂元

25、素,top不變 } template void Stack::StackFull(){ //堆棧加倍 T * el=elements; int i=maxSize,j; maxSize*=2; elements=new T [maxSize]; //建立??臻g assert(elements!=0); //分配不成功,結(jié)束程序 for(j=0;j

26、ut<<"堆??臻g已加倍,空間為:"< sk; int i=1,j=1,k; //i為行政區(qū)號,從0開始;j為著色號,取1~4 sk.P

27、ush(j); while(i4){ i--; j=sk.Pop()+1; } } for(i=0;i

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲