




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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é)過(guò)的知識(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)算。四、實(shí)驗(yàn)環(huán)境:Windows XP + VC+6. 0 開(kāi)發(fā)環(huán)境。五、實(shí)驗(yàn)步驟:1、對(duì)順序棧的知識(shí)進(jìn)行溫習(xí),弄清楚棧的算法思想。2、熟悉順序棧的幾種大體運(yùn)算,即:(1)初始化棧int initStack(sqstack *s)/*創(chuàng)建一個(gè)空棧由指針S指出*/if (s=(sqstack*)
2、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-l) return FALSE; /*棧滿*/ s->top+;s->stacks->top=x;return TRUE;)(3)出棧操作Elemtype pop(sqstack *s)/*假設(shè)棧s不為空,那么刪除棧頂元素*/Elemtype x;if(s->to
3、p<0) return NULL; /*棧空*/x=s->stacks->top.;s->top-;return x;)(4)取棧頂元素操作Elemtype gettop(sqstack *s)/*假設(shè)棧s不為空,那么返回棧頂元素*/if (s->top<0) return NULL; /*???/return (s->stacks->top);)取棧頂元素與出棧不同的地方在于出棧操作改變棧頂指針top的位置,而取棧頂元素操 作不改變棧的棧頂指針.(5)判??詹僮鱥nt Empty(sqstack *s)/*棧s為空時(shí),返回為TRUE;非空時(shí),返
4、回為FALSE*/if(s->top<0) return TRUE;return FALSE;(6)置空操作void setEmpty(sqstack *s)/*將棧s的棧頂指針top,置為T*/s->top= -1;)3、上機(jī)調(diào)試。源代碼如下:#include<stdio. h>#include<stdl ib.h>#define MAXNUM 30#define Elemtype int/*概念順序棧的存儲(chǔ)結(jié)構(gòu)*/typedef structElemtype stackMAXNUM:int top;SqStack;/*初始化順序棧*/void In
5、itStack (SqStack *p) if (!p) pr intf ("error'1);p->top=-1;)/*入棧*/void Push (SqStack *p, Elemtype x) if(p->top<MAXNUM-1) p->stack+p->top=x;else printf("Overflow!nH);)/*出棧*/Elemtype Pop(SqStack *p) Elemtype x;if (p->top!=0)x=p->stackp->top;pr intf ("棧頂元素%d 已經(jīng)
6、被刪除!n", p->stackp->top);p->top-;return (x);)elsepr i ntf ("Underflow!、);return (0);)/*獲取棧頂元素*/Elemtype GetTop (SqStack *p) if(p->top!=0) return (p->stackp->top);else printf ("Underflow!nH);return (0) ; )/*遍歷順序棧*/void OutStack (SqStack *p) int i:printf (Hn");i f
7、(p->top<0) pr intf ("這是一個(gè)空棧! n");for (i=p->top; i>=0; i)pr intf ("第d 個(gè)數(shù)據(jù)是:%6dn". i, p->stacki);/*置空順序棧*/ void setEmpty(SqStack *p) p->top=-1;/*主函數(shù)*/ma i n () SqStack *q;int y. cord;Elemtype a;do printf ("n第一次利用必需初始化! n");pr intf (MnM);pr intf (Mn* 主菜單*
8、 卜n”);pr intf ("n*1初始化順序棧* 、n");pr intf ("n*2插入一個(gè)元素* Ji");pr intf ("n*3刪除棧頂元素* (n");pr intf ("n*4取棧頂元素* 、n");pr intf (Mn*5置空順序棧* n);pr intf ("npr intf ( n-*6終止程序運(yùn)行* 、n");AnM);printf (”請(qǐng)輸入您的選擇(1, 2, 3, 4, 5, 6): “); scanf ("%d' &cord);pr
9、intf ("n");sw i tch (cord) case 1: q= (SqStack*)ma I Ioc(s i zeof(SqStack): InitStack(q);OutStack(q): break;case 2: pr intf (”請(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);O
10、utStack (q); break;case 5: setEmpty(q);pr intf ("n順序棧被置空! n");OutStack (q); break;case 6: ex i t (0);) v/h i I e (cord<=6);六、實(shí)驗(yàn)測(cè)試結(jié)果及分析:U、:Proeram FilesWicrosoTt Visual StudioWyProjec-.當(dāng)?shù)谝粓?chǎng)運(yùn)行時(shí)需要初始化,即輸入1,1 - rD: VPiogr FilesMicrosaf t Vxs-uaL StudioVlyProjectsbyylDebucVbyyl.日目口第二汨曳i必須初始化!
11、 )IMMNKMKMNMMMMMMMMMM 主系單.WX *XX X*X*X««X* 1初始化順序棧-I* 2插入一個(gè)元素«I* 3期除犒頂元索xI* 4雌頂奇-I* S置空順序棧-I* 6緒察程序運(yùn)行kI OflMB SMI BMMB WOBM«MMIBMAMBflMBflBUMB BMB請(qǐng)稀入您的選擇( 1 2. 3. 4. S, 6: 1Orf?®I進(jìn)行初始化以后咱們就可正常對(duì)順序棧運(yùn)算了,*3<-3(-JO<-*:MOO( X-WWX X 主菜 單.* 1初始化順序棧* 2插入一個(gè)元素* 3刪除棧頂元素* 4取棧頂元素* 5
12、置空順序棧* 6結(jié)束程序運(yùn)行*請(qǐng)輸入您的選擇( 工,2, 3, 4, 5, 6)3Hl請(qǐng)輸入要插入的數(shù)據(jù)元素:弟。個(gè)數(shù)據(jù)是;二2以此類推,咱們將能夠測(cè)試出以下其它結(jié)果:第一次使用必須初始化!* 1初始化順序棧* 2插入一個(gè)元素* 3刪除棧頂元素* 4取棧頂元素* 5置空順序棧* 6結(jié)束程序運(yùn)行請(qǐng)輸入您的選擇(1,2, 3, 4, 5, &: 3餞頂元素3已經(jīng)被刪除?第0個(gè)數(shù)據(jù)是:2弟一次使用必須初始化! 再一次使用必須初始化!弁乂乂比比乂比主菜單* 1初始化順序棧* 2插入一個(gè)元素* 3刪除棧頂元素* 4取棧頂元素* 5置空順序棧«* 6結(jié)束程序運(yùn)行*通輸入您的選擇(L 2, 3, 4, 5, 6: 21輸入要插入的數(shù)據(jù)元素=9是是是是 量據(jù)據(jù) 數(shù)數(shù)數(shù)數(shù) 個(gè)個(gè)個(gè)個(gè) 3 2 10咱們插入了多個(gè)元素,然后進(jìn)行讀取棧頂元素及置空,如此更明顯些,請(qǐng)輸入您的選擇c( 2. 3. 4. 5. 6): 4度頂元素為;9>>>:>: S-S-S-S- 數(shù)數(shù)缸缸 個(gè)個(gè)個(gè)個(gè) 3 2 10請(qǐng)輸入您的選擇1, 2, 3. 4, 5, 6): 5順序棧被置空!這是一個(gè)空
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品市場(chǎng)占有率預(yù)測(cè)模型重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 2024年項(xiàng)目管理成功案例分析試題及答案
- 農(nóng)業(yè)植保員資格考試中加強(qiáng)知識(shí)產(chǎn)權(quán)意識(shí)的重要性試題及答案
- 創(chuàng)新備考:模具設(shè)計(jì)師資格認(rèn)證考試的課程設(shè)計(jì)試題及答案
- 2024年游泳救生員資格考試的挑戰(zhàn)與試題及答案
- 必考游泳救生員職業(yè)資格考試試題及答案
- 農(nóng)業(yè)植保員考試提分技巧與心法分享試題及答案
- 走向2025年證券從業(yè)資格證考試的成功試題及答案
- 了解農(nóng)藥使用的植保員試題及答案
- 2024年體育經(jīng)紀(jì)人資格考試制勝試題及答案
- 永磁無(wú)刷直流電機(jī)驅(qū)動(dòng)的研究
- 鋰電池起火應(yīng)急演練
- 2022年四川省阿壩州中考數(shù)學(xué)試卷
- 【年產(chǎn)20萬(wàn)噸丙烯酸工藝設(shè)計(jì)13000字(論文)】
- 分布式光伏經(jīng)濟(jì)評(píng)價(jià)規(guī)范
- 軌道交通噪聲與振動(dòng)控制技術(shù)研究
- 乾坤未定吾皆黑馬+高考沖刺百日誓師主題班會(huì)
- 安徽省合肥市2024屆高三第一次教學(xué)質(zhì)量檢查數(shù)學(xué)試卷及答案
- 2024年四川成都地鐵運(yùn)營(yíng)有限公司招聘筆試參考題庫(kù)含答案解析
- 廣東省地質(zhì)災(zāi)害危險(xiǎn)性評(píng)估實(shí)施細(xì)則(2023年修訂版)
- 《非稅收入征收管理》課件
評(píng)論
0/150
提交評(píng)論