2023年河南工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一線性結(jié)構(gòu)棧和隊(duì)列的操作_第1頁
2023年河南工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一線性結(jié)構(gòu)棧和隊(duì)列的操作_第2頁
2023年河南工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一線性結(jié)構(gòu)棧和隊(duì)列的操作_第3頁
2023年河南工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一線性結(jié)構(gòu)棧和隊(duì)列的操作_第4頁
2023年河南工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一線性結(jié)構(gòu)棧和隊(duì)列的操作_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

XXXX大學(xué)實(shí)驗(yàn)報(bào)告課程名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)一線性結(jié)構(gòu)(二)一一棧和隊(duì)列的操隹院系信息學(xué)院計(jì)類系專業(yè)班級計(jì)類1501姓名學(xué)號指導(dǎo)老師日期批改日期成績一實(shí)驗(yàn)?zāi)康?純熟掌握棧的存儲結(jié)構(gòu)及相關(guān)典型操作。.純熟掌握隊(duì)列的存儲結(jié)構(gòu)及相關(guān)典型操作。二實(shí)驗(yàn)內(nèi)容及規(guī)定實(shí)驗(yàn)內(nèi)容:.建立鏈?zhǔn)綏?,?shí)現(xiàn)棧的初始化、進(jìn)棧、出棧等典型操作。.建立循環(huán)隊(duì)列,實(shí)現(xiàn)隊(duì)列的初始化、進(jìn)隊(duì)、出隊(duì)等典型操作。實(shí)驗(yàn)規(guī)定:.鍵盤輸入數(shù)據(jù);.屏幕輸出運(yùn)營結(jié)果。.規(guī)定記錄實(shí)驗(yàn)源代碼及運(yùn)營結(jié)果。.運(yùn)營環(huán)境:VC++6.0三實(shí)驗(yàn)過程及運(yùn)營結(jié)果1、循環(huán)隊(duì)列#inc1ude<stdio.h>?return0;QUC:\Windows\system32\cmd.exe輸入1為入隊(duì)*輸入2為出隊(duì)中輸入3為隊(duì)列長度*輸入4為遍歷*輸入0為退出中*****************1請輸入入隊(duì)元素:991請輸入入隊(duì)元素:884遍歷結(jié)果為:9988輸出的出隊(duì)元素為:99認(rèn)出的出隊(duì)元素為:881用輸入入隊(duì)元素:66隊(duì)列長度為10請按任意鍵繼續(xù).,,33C:\Windows\system32\cmd.exe輸入1為棧的初始化*輸入2為入棧*輸入3為出棧*輸入。為退出十1棧的初始化,請輸入數(shù)據(jù),以T結(jié)束:7788-1請輸入進(jìn)棧元素:8出棧元素為80請按任意鍵繼續(xù)...四調(diào)試情況、設(shè)計(jì)技巧及體會為了避免順序棧的存儲結(jié)構(gòu)所帶來的在操作中需要移動(dòng)大量數(shù)據(jù)的缺陷,采用鏈棧,具有動(dòng)態(tài)特性,不用設(shè)立頭結(jié)點(diǎn)。隊(duì)列是一種先進(jìn)后出帶的線性表,一個(gè)鏈隊(duì)列由頭指針和尾指針唯一擬定,所以建立鏈表的時(shí)候,需要在對頭加一個(gè)頭結(jié)點(diǎn),頭指針指向頭結(jié)點(diǎn)。include<std1ib.h>^defineOK1defineERROR0defineOVERFLOW-2^defineMAXQSIZE100〃最大隊(duì)列長度typedefstruct(int*base;〃初始化的動(dòng)態(tài)分派存儲空間intfront;intrear;}SqQueue;//初始化隊(duì)列intInitQueue(SqQueueQ)(oQ.base=(int*)malloc(MAXQSIZE*sizeof(int));oif(!Q.base)exit(OVERFLOW);//存儲分派失敗Q.front=Q.rear=0;oreturnOK;〃入隊(duì)操作intEnQueue(SqQueueQ)(ointe;if((Q.rear+1)%MAXQSIZE==Q.front)〃判斷隊(duì)滿(。printf(〃隊(duì)列已滿,不能入隊(duì)\n〃);returnERROR;}printf(〃請輸入入隊(duì)元素:”);scanf(〃%d”,&c);Q.base[Q.rear]=e;〃入隊(duì)Q.rear=(Q.rear+1)%MAXQSIZE;//隊(duì)尾指針后移oreturnOK;}〃出隊(duì)操作intDeQueue(SqQueueQ)?if(Q.front==Q.rear)//判斷隊(duì)空oprintf(〃隊(duì)列已為空\n〃);。returnERROR;。}?e=Q.base[Q.front];〃隊(duì)頭出隊(duì)◎printf(〃輸出的出隊(duì)元素為:〃);printf("%d\rT,e);Q.fronts(Q.front+l)%MAXQSIZE;〃隊(duì)頭下表后移^returnOK;)〃隊(duì)列長度intQueueLength(SqQueueQ)(oreturn((Q.rear-Q.front+MAXQSIZE)%MAXQSIZE);)//隊(duì)列遍歷intQueueTraverse(SqQueueQ)oprintf("遍歷結(jié)果為:”);◎while(Q.front!=Q.rear)printf("%d,z,Q.base[Q.front]);。Q.front=(Q.front+l)%MAXQSIZE;}printf(〃\n〃);oreturnOK;}intmain()(ntn;SqQueueQ;InitQueue(Q);°printf("*輸入1為入隊(duì)*\n〃);Printf("*輸入2為出隊(duì)*\n〃);Pr輸入3為隊(duì)列長度*\n”);printf("*輸入4為遍歷*\n〃);printf("*輸入0為退出*\n");printf(〃************火****\n〃);?while(scanf(z,%dn,&n),n)oswitch(n)(case1:EnQueue(Q);break;ocase2:DeQueue(Q);break;?case3:printf("隊(duì)列長度為%d\n〃,QueueLength(Q));break;◎case4:QueueTraverse(Q);break;。))return0;)2、鏈?zhǔn)綏?include<stdio.h>#include<stdlib.h>defineOK1defineERR0R0defineOVERFLOW-2typedefintStatus;typedefintSElemType;typedefstructnodeSElemTypedata;structnode*next;}SLnode,*SLinkList;typedefstruct(SLinkListtop,base;nt1en;}S_LinkList;//棧的初始化StatusCreat_S(S_LinkList&S)(?intn;SLinkListp,q;叩rintf(〃棧的初始化,請輸入數(shù)據(jù),以T結(jié)束:\n〃);S.top=(SLinkList)maHoc(sizeof(SLnode));.base=(SLinkList)malloc(sizeof(SLnode));top->next=S.base;q=S.base;en=0;whi1e(scanf("%d〃,&n),n!=-1)(p=(SLinkList)malloc(sizeof(SLnode));p—>data=n;top—>next=p;p->next=q;q=p;S.len++;q=S.top->next;while(q!=S.base)(printf(〃%d\n〃,q->data);q=q->next;)叩rintf("*****\n");returnOK;)〃進(jìn)棧StatusPushS(SLinkList&S)(inte;printf("請輸入進(jìn)棧元素:〃);scanf("%d〃,&e);SLinkListp,q;q=S.top—>next;p=(SLinkList)mal1oc(sizeof(SLnode));p->data=e;S.top->next=p;p->next=q;q=p;S.len++;returnOK;//出棧StatusPopS(S_LinkList&S)(SLinkListp;p=S.top—>next;if(p!=S.base)printf(〃出棧元素為%d\n〃,p->data);returnOK;}intmain()(S_LinkLists;inta;printf(〃*輸入1為棧的初始化*\n〃);printf("*輸入2為入棧*\n〃);Printf("*輸入3為出棧*'n〃);printf(〃*輸入0為退出*\n〃);pri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論