棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)_第1頁(yè)
棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)_第2頁(yè)
棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)_第3頁(yè)
棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)_第4頁(yè)
棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、最新資料推薦實(shí)驗(yàn)三棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康模?. 熟悉棧的特點(diǎn)(先進(jìn)后出)及棧的基本操作,如入棧、出棧等。2. 掌握棧的基本操作在棧的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上的實(shí)現(xiàn)。實(shí)驗(yàn)內(nèi)容:1. 棧的順序表示和實(shí)現(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)順序棧的各種基本運(yùn)算, 并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序, 完成如下功能。( 1) 初始化順序棧( 2) 插入一個(gè)元素( 3) 刪除棧頂元素( 4) 取棧頂元素( 5) 便利順序棧( 6) 置空順序棧#include #include#define MAXNUM 20#define elemtype int/定義順序棧的存儲(chǔ)結(jié)構(gòu)typedef structelemtyp

2、e stackMAXNUM;int top;sqstack;/初始化順序棧void initstack(sqstack *p)if(!p)printf(error);p-top=-1;/入棧void push(sqstack *p,elemtype x)/出棧elemtype pop(sqstack *p)1最新資料推薦/獲取棧頂元素elemtype gettop(sqstack *p)elemtype x;if(p-top!=-1)x=p-stackp-top;return x;elseprintf(Underflow!n);return 0;/遍歷順序棧void outstack(sqst

3、ack *p)int i;printf(n);if(p-toptop;i=0;i-)printf( 第 %d 個(gè)數(shù)據(jù)元素是:%6dn,i,p-stacki);/置空順序棧void setempty(sqstack *p)/主函數(shù)main()sqstack *q;int y,cord;elemtype a;2最新資料推薦doprintf(n第一次使用必須初始化!nn);printf(n主菜單n);printf(n1初始化順序棧n);printf(n2插入一個(gè)元素n);printf(n3刪除棧頂元素n);printf(n4取棧頂元素n);printf(n5置空順序棧n);printf(n6結(jié)束程序

4、運(yùn)行n);printf(n-n);printf( 請(qǐng)輸入您的選擇(1,2,3,4,5,6) );scanf(%d,&cord);printf(n);switch(cord)case 1:q=(sqstack *)malloc(sizeof(sqstack);initstack(q);outstack(q);break;case 2:printf( 請(qǐng)輸入要插入的數(shù)據(jù)元素:a=);scanf(%d,&a);push(q,a);outstack(q);break;case 3:pop(q);outstack(q);break;case 4:y=gettop(q);printf(n棧頂元素為:%dn

5、,y);outstack(q);break;case 5:setempty(q);printf(n順序棧被置空! n);3最新資料推薦outstack(q);break;case 6:exit(0);while(cord=6);2. 棧的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)鏈棧的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序,完成如下功能。( 1) 初始化鏈棧( 2) 入棧( 3) 出棧( 4) 取棧頂元素( 5) 置空鏈棧( 6) 遍歷鏈棧參考代碼:#include #include#include#define null 0typedef int elemtype;typedef struct sta

6、cknodeelemtype data;stacknode *next;stacknode;typedef structstacknode *top;linkstack;/初始化鏈棧void initstack(linkstack *s)s-top=null;printf(n 已經(jīng)初始化鏈棧!n);/鏈棧置空void setempty(linkstack *s)s-top=null;4最新資料推薦printf(n 鏈棧被置空!n);/入棧void pushlstack(linkstack *s,elemtype x)/出棧elemtype poplstack(linkstack *s)/取棧頂

7、元素elemtype stacktop(linkstack *s)if(s-top=0)printf(n鏈???n);exit(-1);return s-top-data;/遍歷鏈棧void disp(linkstack *s)printf(n 鏈棧中的數(shù)據(jù)位: n); printf(=n); stacknode *p;p=s-top;while(p!=null)printf(%dn,p-data);p=p-next;printf(=n);/主函數(shù)void main()printf(=鏈棧操作 =n);int i,m,n,a;5最新資料推薦linkstack *s;s=(linkstack *

8、)malloc (sizeof(linkstack);int cord;doprintf(n第一次使用必須初始化 !nn);printf(n主菜單n);printf(n1初始化鏈棧n);printf(n2入棧n);printf(n3出棧n);printf(n4取棧頂元素n);printf(n5置空鏈棧n);printf(n6結(jié)束程序運(yùn)行n);printf(n-n);printf( 請(qǐng)輸入您的選擇(1,2,3,4,5,6) );scanf(%d,&cord);printf(n);switch(cord)case 1:initstack(s);disp(s);break;case 2:printf( 輸入將要壓入鏈棧的數(shù)據(jù)的個(gè)數(shù):n=);scanf(%d,&n);printf( 依次將 %d 個(gè)數(shù)據(jù)壓入鏈棧:n,n);for(i=1;i=n;i+)scanf(%d,&a);pushlstack(s,a);disp(s);break;case 3:printf(n出棧操作開始!n);printf( 輸入將要出棧的數(shù)據(jù)個(gè)數(shù):m=);scanf(%d,&m);for(i=1;i=m;i+)printf(n 第 %d 次出棧的數(shù)據(jù)是: %dn,i,popls

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論