數(shù)據(jù)結(jié)構(gòu)棧和隊(duì)列實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)棧和隊(duì)列實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)棧和隊(duì)列實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)棧和隊(duì)列實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)棧和隊(duì)列實(shí)驗(yàn)報(bào)告_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

《數(shù)據(jù)結(jié)構(gòu)》課程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱(chēng)棧和隊(duì)列實(shí)驗(yàn)序號(hào)實(shí)驗(yàn)日期姓名院系班級(jí)學(xué)號(hào)專(zhuān)業(yè)指導(dǎo)教師成績(jī)教師評(píng)語(yǔ)一、實(shí)驗(yàn)?zāi)康暮鸵?1)理解棧和隊(duì)列的特征以及它們之間的差異,知道在何時(shí)使用那種數(shù)據(jù)結(jié)構(gòu)。(2)重點(diǎn)掌握在順序棧上和鏈棧上實(shí)現(xiàn)棧的基本運(yùn)算算法,注意棧滿(mǎn)和??盏臈l件。(3)重點(diǎn)掌握在順序隊(duì)上和鏈隊(duì)上實(shí)現(xiàn)隊(duì)列的基本運(yùn)算算法,注意循環(huán)隊(duì)隊(duì)列滿(mǎn)和隊(duì)空的條件。(4)靈活運(yùn)用棧和隊(duì)列這兩種數(shù)據(jù)結(jié)構(gòu)解決一些綜合應(yīng)用問(wèn)題。二、實(shí)驗(yàn)項(xiàng)目摘要編寫(xiě)一個(gè)程序algo3-1.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)釋放棧。編寫(xiě)一個(gè)程序algo3-3.cpp,實(shí)現(xiàn)順序環(huán)形隊(duì)列的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序并完成如下功能:(1)初始化隊(duì)列q;(2)判斷隊(duì)列q是否非空;(3)依次進(jìn)隊(duì)列a,b,c;(4)出隊(duì)一個(gè)元素,輸出該元素;(5)輸出隊(duì)列q的元素個(gè)數(shù);(6)依次進(jìn)隊(duì)列元素d,e,f;(7)輸出隊(duì)列q的元素個(gè)數(shù);(8)輸出出隊(duì)序列;(9)釋放隊(duì)列。三、實(shí)驗(yàn)預(yù)習(xí)內(nèi)容棧的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算實(shí)現(xiàn)(初始化棧,銷(xiāo)毀棧,求棧的長(zhǎng)度,判斷棧是否為空,進(jìn)棧,取棧頂元素,顯示棧中元素)隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算實(shí)現(xiàn)(初始化隊(duì)列,銷(xiāo)毀隊(duì)列,判斷隊(duì)列是否為空,入隊(duì)列,出隊(duì)列)三、實(shí)驗(yàn)結(jié)果與分析3-1#definemaxsize100#include<stdio.h>#include<malloc.h>usingnamespacestd;typedefcharElemType;typedefstruct{ElemTypedata[maxsize];inttop;}SqStack;voidInitStack(SqStack*&s){s=(SqStack*)malloc(sizeof(SqStack));s->top=-1;}intStackEmpty(SqStack*s){ return(s->top==-1);}intPush(SqStack*&s,ElemTypee){if(s->top==maxsize-1)return0;s->top++;s->data[s->top]=e;return1;}intPop(SqStack*&s,ElemType&e){if(s->top==-1)return0;e=s->data[s->top];s->top--;return1;}voidClearStack(SqStack*&s){ free(s);}intStackLength(SqStack*s){ return(s->top+1);}intGetTop(SqStack*s,ElemType&e){if(s->top==-1)return0;e=s->data[s->top];return1;}voidDispStack(SqStack*s){inti;for(i=s->top;i>=0;i--)printf("%c",s->data[i]);printf("\n");}intmain(){ SqStack*s; ElemTypee; printf("初始化棧s\n"); InitStack(s); printf("棧s為%s\n",(StackEmpty(s)?"空":"非空")); printf("依次進(jìn)棧元素a,b,c,d,e\n"); Push(s,'a'); Push(s,'b'); Push(s,'c'); Push(s,'d'); Push(s,'e'); printf("棧s為%s\n",(StackEmpty(s)?"空":"非空")); printf("棧的長(zhǎng)度=%d\n",StackLength(s)); printf("輸出從棧頂?shù)綏5自?"); DispStack(s); printf("輸出出棧序列:"); while(!StackEmpty(s)) {Pop(s,e); printf("%c",e); } printf("\n"); printf("棧s為%s\n",(StackEmpty(s)?"空":"非空"));printf("釋放棧。\n"); ClearStack(s);}3-3#definemaxsize100#include<stdio.h>#include<malloc.h>usingnamespacestd;typedefcharElemType;typedefstruct{ElemTypedata[maxsize];intfront,rear;}SqQueue;voidInitQueue(SqQueue*&q){q=(SqQueue*)malloc(sizeof(SqQueue));q->front=q->rear=0;}intQueueEmpty(SqQueue*q){ return(q->front==q->rear);}intenQueue(SqQueue*&q,ElemTypee){if((q->rear+1)%maxsize==q->front)return0;q->rear=(q->rear+1)%maxsize;q->data[q->rear]=e;return1;}intdeQueue(SqQueue*&q,ElemType&e){if(q->front==q->rear)return0;q->front=(q->front+1)%maxsize;e=q->data[q->front];return1;}intQueueLength(SqQueue*q){return(q->rear-q->front+maxsize)%maxsize;}voidClearQueue(SqQueue*&q){free(q);}intmain(){ SqQueue*q; ElemTypee; printf("初始化隊(duì)列q\n"); InitQueue(q); printf("隊(duì)列q為%s\n",(QueueEmpty(q)?"空":"非空")); printf("依次進(jìn)隊(duì)元素a,b,c\n"); if(enQueue(q,'a')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n");if(enQueue(q,'b')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n");if(enQueue(q,'c')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n"); if(deQueue(q,e)==0)printf("隊(duì)空,不能出隊(duì)\n"); elseprintf("出隊(duì)一個(gè)元素%c\n",e); printf("隊(duì)列q元素個(gè)數(shù)=%d\n",QueueLength(q)); if(enQueue(q,'d')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n"); if(enQueue(q,'e')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n"); if(enQueue(q,'f')==0)printf("隊(duì)滿(mǎn),不能入隊(duì)\n"); print

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論