實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)_第1頁
實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)_第2頁
實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)_第3頁
實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)_第4頁
實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)一 一個(gè)順序棧的基本運(yùn)算實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模?對(duì)一個(gè)順序棧的基本運(yùn)算進(jìn)行分析與設(shè)計(jì),回顧數(shù)據(jù)結(jié)構(gòu)所學(xué)過的知識(shí),掌握一個(gè)順序棧的基本運(yùn)算實(shí)現(xiàn),為下一步的實(shí)驗(yàn)奠定基礎(chǔ)。二、實(shí)驗(yàn)要求: 要求對(duì)一個(gè)順序棧的基本運(yùn)算作設(shè)計(jì)性實(shí)驗(yàn),并上機(jī)運(yùn)行,撰寫實(shí)驗(yàn)報(bào)告。三、實(shí)驗(yàn)內(nèi)容:一個(gè)順序棧的數(shù)據(jù)類型表示和初始化、進(jìn)棧、出?;具\(yùn)算。4、 實(shí)驗(yàn)環(huán)境:windows xp + vc+6.0開發(fā)環(huán)境。5、 實(shí)驗(yàn)步驟:1、 對(duì)順序棧的知識(shí)進(jìn)行復(fù)習(xí),弄清楚棧的算法思想。2、 熟悉順序棧的幾種基本運(yùn)算,即:(1)初始化棧int initstack(sqstack *s)/*創(chuàng)建一個(gè)空棧由指針s指出*/ if (s=(sqs

2、tack*)malloc(sizeof(sqstack)= =null) return false; s-top= -1;return true;(2)入棧操作int push(sqstack *s, elemtype x)/*將元素x插入到棧s中,作為s的新棧頂*/ if(s-top=maxnum-1) return false; /*棧滿*/ s-top+; s-stacks-top=x;return true;(3)出棧操作elemtype pop(sqstack *s)/*若棧s不為空,則刪除棧頂元素*/elemtype x;if(s-topstacks-top; s-top-;ret

3、urn x;(4)取棧頂元素操作elemtype gettop(sqstack *s)/*若棧s不為空,則返回棧頂元素*/ if(s-topstacks-top); 取棧頂元素與出棧不同之處在于出棧操作改變棧頂指針top的位置,而取棧頂元素操作不改變棧的棧頂指針.(5)判棧空操作int empty(sqstack *s)/*棧s為空時(shí),返回為true;非空時(shí),返回為false*/ if(s-toptop= -1;3、 上機(jī)調(diào)試。源代碼如下:#include#include#define maxnum 30#define elemtype int/*定義順序棧的存儲(chǔ)結(jié)構(gòu)*/typedef str

4、uctelemtype stackmaxnum;int top;sqstack;/*初始化順序棧*/void initstack(sqstack *p)if(!p) printf(error);p-top=-1;/*入棧*/void push(sqstack *p,elemtype x)if(p-topstack+p-top=x;else printf(overflow!n);/*出棧*/elemtype pop(sqstack *p)elemtype x;if(p-top!=0)x=p-stackp-top;printf(棧頂元素%d已經(jīng)被刪除!n,p-stackp-top);p-top-;

5、return (x);elseprintf(underflow!n);return(0);/*獲取棧頂元素*/elemtype gettop(sqstack *p) if(p-top!=0) return (p-stackp-top); else printf(underflow!n); return(0); /*遍歷順序棧*/void outstack(sqstack *p) int i; printf(n); if(p-toptop; i=0; i-) printf(第%d個(gè)數(shù)據(jù)是:%6dn, i, p-stacki);/*置空順序棧*/void setempty(sqstack *p)

6、p-top=-1; /*主函數(shù)*/main() sqstack *q; int y, cord; elemtype a; do printf(n第一次使用必須初始化!n); printf(n); printf(n * 主菜單* n); printf(n * 1 初始化順序棧 * n); printf(n * 2 插入一個(gè)元素 * n); printf(n * 3 刪除棧頂元素 * n); printf(n * 4 取棧頂元素 * n); printf(n * 5 置空順序棧 * n); printf(n * 6 結(jié)束程序運(yùn)行 * n); printf(n-n); printf(請(qǐng)輸入您的選擇(

7、 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, y); outstack(q); break; case 5: setempty(q); printf(n 順序棧被置空!n); outstack(q); break; case 6: exit(0); while (cord=6);6、 實(shí)驗(yàn)測(cè)試結(jié)果及分析:當(dāng)?shù)谝粓?chǎng)運(yùn)行時(shí)需要初始化,即輸入1,進(jìn)行初始化之后我們就可正常對(duì)順序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論