![西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告棧的基本操作_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/31/6e57ee94-639d-4c07-8279-4c3e26a62625/6e57ee94-639d-4c07-8279-4c3e26a626251.gif)
![西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告棧的基本操作_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/31/6e57ee94-639d-4c07-8279-4c3e26a62625/6e57ee94-639d-4c07-8279-4c3e26a626252.gif)
![西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告棧的基本操作_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/31/6e57ee94-639d-4c07-8279-4c3e26a62625/6e57ee94-639d-4c07-8279-4c3e26a626253.gif)
![西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告棧的基本操作_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/31/6e57ee94-639d-4c07-8279-4c3e26a62625/6e57ee94-639d-4c07-8279-4c3e26a626254.gif)
![西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告棧的基本操作_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/31/6e57ee94-639d-4c07-8279-4c3e26a62625/6e57ee94-639d-4c07-8279-4c3e26a626255.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西南科技大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱(chēng): 棧的基本操作 實(shí)驗(yàn)環(huán)境: windows 7 VS2010 實(shí)驗(yàn)類(lèi)別: 指導(dǎo)教師: 專(zhuān)業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 一、 實(shí)驗(yàn)?zāi)康?、 掌握棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)2、 學(xué)會(huì)棧基本運(yùn)算的實(shí)現(xiàn)二、 實(shí)驗(yàn)內(nèi)容我所做的實(shí)驗(yàn)是實(shí)驗(yàn)題3.2,編寫(xiě)程序3-2.cpp,實(shí)現(xiàn)鏈棧的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序完成如下功能(1)、初始化鏈棧s;(2)、判斷鏈棧s是否非空;(3)、依次進(jìn)棧元素a,b,c,d,e;(4)、判斷鏈棧s是否非空;(5)、輸出鏈棧長(zhǎng)度;(6)、輸出從棧頂?shù)綏5自?;?)、輸出出鏈棧序列;(8)、判斷鏈棧s是否非空;(9)、釋放鏈棧。三、 實(shí)驗(yàn)
2、過(guò)程本次實(shí)驗(yàn)我是用C+來(lái)完成的,鏈棧也就是采用單鏈表實(shí)現(xiàn),鏈棧的優(yōu)點(diǎn)是不存在棧滿上溢的情況,規(guī)定棧的所有操作都是在單鏈表的表頭進(jìn)行的,所以實(shí)現(xiàn)鏈棧也就是對(duì)單鏈表的簡(jiǎn)化。下面具體介紹一下本次實(shí)驗(yàn)的實(shí)驗(yàn)過(guò)程:1、 初始化鏈棧要建立鏈棧的頭結(jié)點(diǎn),并將其next域置為NULL。2、 鏈棧為空的條件是棧的指針的下一個(gè)指向空(s->next=NULL),也就是單鏈表中沒(méi)有數(shù)據(jù)結(jié)點(diǎn)。3、 進(jìn)棧也就是將新數(shù)據(jù)結(jié)點(diǎn)插入到頭結(jié)點(diǎn)之后。4、 鏈棧的長(zhǎng)度也就是從第一個(gè)數(shù)據(jù)結(jié)點(diǎn)開(kāi)始掃描單鏈表,從而保存訪問(wèn)的數(shù)據(jù)結(jié)點(diǎn)的個(gè)數(shù),然后將其值返回。5、 從棧頂?shù)綏5自氐妮敵鲆簿褪菑牡谝粋€(gè)數(shù)據(jù)結(jié)點(diǎn)開(kāi)始掃描單鏈表嗎,并輸出當(dāng)
3、前訪問(wèn)結(jié)點(diǎn)的數(shù)據(jù)域值6、 輸出出棧序列是在棧不為空的條件下,將頭結(jié)點(diǎn)的指針域所指數(shù)據(jù)結(jié)點(diǎn)的數(shù)據(jù)域輸出,然后將其空間釋放,也就是刪除。7、 釋放鏈棧也就是對(duì)棧的銷(xiāo)毀,釋放棧占用的全部存儲(chǔ)空間四、 實(shí)驗(yàn)結(jié)果本次實(shí)驗(yàn)實(shí)現(xiàn)了棧的各種基本運(yùn)算,并對(duì)其進(jìn)行檢驗(yàn),均沒(méi)有發(fā)生錯(cuò)誤,符合實(shí)驗(yàn)要求。五、 實(shí)驗(yàn)心得通過(guò)本次實(shí)驗(yàn),可以說(shuō)我對(duì)單鏈表的操作再一次熟悉了一遍,并且了解到棧在實(shí)際應(yīng)用當(dāng)中也很廣泛,例如在計(jì)算器當(dāng)中的表達(dá)式的求值可以用棧來(lái)實(shí)現(xiàn),DFS深度優(yōu)先搜索也可以用棧來(lái)實(shí)現(xiàn),從而解決了求解迷宮問(wèn)題等等。通過(guò)學(xué)習(xí)棧,對(duì)大數(shù)據(jù)的處理也提供了遍歷,提高了代碼的可讀性。六、 實(shí)驗(yàn)代碼#include<iost
4、ream>using namespace std;struct stack /定義鏈棧數(shù)據(jù)類(lèi)型為stack,char data;/數(shù)據(jù)域stack *next;/指針域;stack *init()/該函數(shù)實(shí)現(xiàn)初始化鏈棧stack *s;s=new stack;/依然用new函數(shù)開(kāi)辟空間s->next=NULL;/將其next域置為NULLreturn s;int emptystack(stack *s)/該函數(shù)實(shí)現(xiàn)鏈棧的判空操作return (s->next=NULL);/這里返回1為非空,0為空void push(stack *s,char ch)/該函數(shù)實(shí)現(xiàn)了進(jìn)棧的功能i
5、nt i,q;stack *p; /首先要建立一個(gè)結(jié)點(diǎn)p=new stack;/為該結(jié)點(diǎn)開(kāi)辟空間p->data=ch;/該結(jié)點(diǎn)的數(shù)據(jù)域?yàn)閷⑦M(jìn)棧的元素p->next=s->next;/將p結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)指向s結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),為了實(shí)現(xiàn)插入操作的對(duì)接s->next=p;/將s的下一個(gè)結(jié)點(diǎn)指向p,這樣就把p指向的數(shù)據(jù)插入到了s的后面int lengthstack(stack *s)/該函數(shù)實(shí)現(xiàn)了計(jì)算鏈棧的長(zhǎng)度stack *p=s->next;/因?yàn)殒湕有頭結(jié)點(diǎn),所以定義p指向s的下一個(gè),因?yàn)閟的下一個(gè)才有數(shù)據(jù)int n=0;while(p!=NULL)/通過(guò)棧中元素
6、指針指向地址遍歷實(shí)現(xiàn)計(jì)算鏈棧長(zhǎng)度功能n+;/n的累加,返回鏈棧長(zhǎng)度p=p->next;return n;void putstack(stack *s)/該函數(shù)實(shí)現(xiàn)了從棧頂?shù)綏5自氐妮敵?,其過(guò)程與計(jì)算鏈棧長(zhǎng)度相似,只不過(guò)這次是把數(shù)據(jù)域中元素的輸出stack *p=s->next;while(p!=NULL)cout<<p->data;p=p->next;cout<<endl;void pop(stack *s)/該函數(shù)實(shí)現(xiàn)對(duì)棧中元素的輸出,是出棧功能,與上面的相似,這里就是多一個(gè)釋放空間的操作stack *p=s->next;stack *
7、q=s;if(q->next=NULL)return ;while(p!=NULL)cout<<p->data;q->next=p->next;/q指針跳過(guò)P指向的數(shù)據(jù),直接指向p的下一個(gè)free(p);/釋放空間p=q->next;cout<<endl;void destroystack(stack *s)/該函數(shù)實(shí)現(xiàn)了對(duì)棧的銷(xiāo)毀,釋放棧的存儲(chǔ)空間stack *p=s,*q=s->next;while(q)/挨個(gè)對(duì)空間進(jìn)行釋放free(p);p=q;q=p->next;free(p);int main()int n,m,p,i
8、,q,flag;char ch,c;stack *S=init();/下面實(shí)現(xiàn)界面的友好cout<<"1:輸入進(jìn)棧元素"<<endl<<"2:判斷棧S是否為空"<<endl<<"3:輸出鏈棧S長(zhǎng)度"<<endl<<"4:輸出從棧頂?shù)綏5自?quot;<<endl<<"5:輸出出鏈棧序列"<<endl<<"6:釋放鏈棧"<<endl;while
9、(1)/實(shí)現(xiàn)了人性化操作cout<<"請(qǐng)選擇:"cin>>flag;if(flag=1)cout<<"請(qǐng)輸入要插入元素的個(gè)數(shù):"<<endl; cin>>q; cout<<"請(qǐng)輸入元素"<<endl;for(i=0;i<q;i+)cin>>ch;push(S,ch);if(flag=2)cout<<"判空:"<<emptystack(S)<<endl;if(flag=3)cout<<"鏈棧長(zhǎng)度為:"<<lengthstack(S)<<endl;if(flag=4)cout
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025年高中化學(xué)第2章第2節(jié)第2課時(shí)分子的空間構(gòu)型與分子性質(zhì)教案魯科版選修3
- 2024-2025學(xué)年高中歷史專(zhuān)題8明治維新1走向崩潰的幕府政權(quán)練習(xí)人民版選修1
- 2024-2025學(xué)年高中政治第2單元生產(chǎn)勞動(dòng)與經(jīng)營(yíng)課題能力提升五練習(xí)含解析新人教版必修1
- 房子翻建申請(qǐng)書(shū)
- 2024-2025學(xué)年新教材高中歷史第一單元從中華文明起源到秦漢統(tǒng)一多民族封建國(guó)家的建立與鞏固第4課西漢與東漢-統(tǒng)一多民族封建國(guó)家的鞏固課時(shí)作業(yè)含解析新人教版必修中外歷史綱要上
- 年齡更改申請(qǐng)書(shū)
- 二零二五年度農(nóng)村自建房裝修工程進(jìn)度款支付合同
- 校園中的用電安全管理與預(yù)防措施探討
- 2025年度城市軌道交通建設(shè)合作框架協(xié)議
- 青海省海南州2024-2025學(xué)年高二上學(xué)期期中質(zhì)量檢測(cè)生物試題2
- 化學(xué)選修4《化學(xué)反應(yīng)原理》(人教版)全部完整PP課件
- 《煤礦安全規(guī)程》專(zhuān)家解讀(詳細(xì)版)
- 招聘面試流程sop
- 建筑公司工程財(cái)務(wù)報(bào)銷(xiāo)制度(精選7篇)
- 工程設(shè)計(jì)方案定案表
- 最新2022年減肥食品市場(chǎng)現(xiàn)狀與發(fā)展趨勢(shì)預(yù)測(cè)
- 第一章-天氣圖基本分析方法課件
- 暖氣管道安裝施工計(jì)劃
- 體育實(shí)習(xí)周記20篇
- 初二物理彈力知識(shí)要點(diǎn)及練習(xí)
- 復(fù)合材料成型工藝及特點(diǎn)
評(píng)論
0/150
提交評(píng)論