![實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f1.gif)
![實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f2.gif)
![實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f/c0e9d2a2-2846-4687-a86b-ec29d8b0cb8f3.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、寸合肥修沆HBFElUNIVEHS1TY計(jì)算機(jī)科學(xué)與技術(shù)系實(shí)驗(yàn)報(bào)告專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)課程名稱數(shù)據(jù)結(jié)構(gòu)與算法項(xiàng)目名稱實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)班級(jí)學(xué)號(hào)1姓名同組人員無實(shí)驗(yàn)日期實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)實(shí)驗(yàn)題目:建立含有若干個(gè)元素的循環(huán)隊(duì)列和鏈隊(duì)列,并分別實(shí)現(xiàn)循環(huán)隊(duì)列和鏈隊(duì)列的入隊(duì)和出對(duì)操作。(1) 先實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)和出隊(duì)操作問題分析本程序要求實(shí)現(xiàn)建立含有若干個(gè)元素的循環(huán)隊(duì)列,并實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)和出隊(duì)操作。完成該實(shí)驗(yàn)需要以下4個(gè)子任務(wù):定義一個(gè)循環(huán)隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義隊(duì)列的基本算法。定義一個(gè)display()函數(shù)實(shí)現(xiàn)隊(duì)歹U元素的輸出看入隊(duì)是否成功頃通過隊(duì)列的基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作(4在主函數(shù)中完成操作測(cè)試
2、數(shù)據(jù)設(shè)計(jì)如下:123451. 6概要設(shè)計(jì)為了實(shí)現(xiàn)上述程序功能,需要:。聲明一個(gè)循環(huán)隊(duì)列定義出隊(duì)列的基本算法,笆通過鍵盤輸入5個(gè)整數(shù),入隊(duì),出隊(duì)在主函數(shù)中先往隊(duì)列里輸入5個(gè)元素,然后入隊(duì),輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用display()函數(shù)看是否出隊(duì)。1)本程序包含7個(gè)函數(shù):1主函數(shù)main()置空隊(duì):InitQueue()判對(duì)空:QueueEmpty()判隊(duì)滿:QueueFull()入隊(duì):Add()出隊(duì):Delete()display()各函數(shù)關(guān)系如下:Main()InitQueue()QueueEmpty()QueueFull()Add()MainDelete()display()3
3、、詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對(duì)每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼。(1)循環(huán)隊(duì)列#definemaxlen10typedefstruct(intdatamaxlen;intfront;intrear;SeqQueue;(2) 隊(duì)歹0基本算法SeqQueue*InitQueue(SeqQueue*q)/建立一個(gè)空循環(huán)隊(duì)歹U(q=(SeqQueue*)malloc(sizeof(SeqQueue);q->front=0;q->rear=0;returnq;intQueueFull(SeqQueue*q)(/判斷隊(duì)歹U是否為滿if(q->front=
4、(q->rear+1)%maxlen)return1;/判斷隊(duì)列是否為空elsereturn0;intQueueEmpty(SeqQueue*q)(if(q->rear=q->front)return1;elsereturn0;voidAdd(SeqQueue*q,intx)/入隊(duì)(if(!QueueFull(q)q->rear=(q->rear+1)%maxlen;q->dataq->rear=x;elseprintf("queuefull");voidDelete(SeqQueue*q)出隊(duì)if(!QueueEmpty(q)q-
5、>front=(q->front+1)%maxlen;elseprintf("queueEmpty");(3) 用display()函數(shù)輸出循環(huán)隊(duì)歹U元素voiddisplay(SeqQueue*q)/輸出循環(huán)隊(duì)歹Uq的元素(inti;if(q->front!=q->rear)循環(huán)隊(duì)歹0非空,輸出隊(duì)歹0元素(printf("輸出循環(huán)隊(duì)列元素:");i=q->front;do(i=(i+1)%maxlen;printf("%d",q->datai);while(i!=q->rear);elsep
6、rintf("隊(duì)列為空!");然后出(4) 在主函數(shù)中先往隊(duì)列里輸入5個(gè)元素,輸出,看入隊(duì)是否成功,隊(duì),再調(diào)用display()函數(shù)看是否出隊(duì)。intmain()SeqQueue*q;inti,y;q=InitQueue(q);/建立空循環(huán)隊(duì)歹Uprintf("請(qǐng)輸入5個(gè)元素,for(i=0;i<5;i+)/入隊(duì)5個(gè)元素(scanf("%d",&y);Add(q,y);display(q);/輸出循環(huán)隊(duì)列元素for(i=0;i<5;i+)/把5個(gè)元素出隊(duì)(Delete(q);printf("n請(qǐng)輸入1個(gè)元素&quo
7、t;);scanf("%d",&y);/再入隊(duì)一個(gè)元素Add(q,y);display(q);/再輸出循環(huán)隊(duì)列元素return0;4、調(diào)試分析編譯無錯(cuò)誤5、用戶使用說明程序名為class1.exe,在DEBUG文件夾里面。運(yùn)行環(huán)境VisualC+6.0。6、測(cè)試結(jié)果灑輸入5個(gè)元泰12343輸山循環(huán)隊(duì)列兀密:12315請(qǐng)輸元個(gè)元卻騰出循環(huán)隊(duì)列元素:6Prossanykeytocontinue7、附錄#include<stdio.h>#include<stdlib.h>#definemaxlen10typedefstructintdatamaxl
8、en;intfront;intrear;SeqQueue;SeqQueue*InitQueue(SeqQueue*q)/建立一個(gè)空循環(huán)隊(duì)列(q=(SeqQueue*)malloc(sizeof(SeqQueue);q->front=0;q->rear=0;returnq;intQueueFull(SeqQueue*q)(/判斷隊(duì)列是否為滿if(q->front=(q->rear+1)%maxlen)return1;elsereturn0;intQueueEmpty(SeqQueue*q)(/判斷隊(duì)列是否為空if(q->rear=q->front)return
9、1;elsereturn0;voidAdd(SeqQueue*q,intx)if(!QueueFull(q)(q->rear=(q->rear+1)%maxlen;q->dataq->rear=x;elseprintf("queuefull");voidDelete(SeqQueue*q)(/入隊(duì)/出隊(duì)if(!QueueEmpty(q)q->front=(q->front+1)%maxlen;voiddisplay(SeqQueue*q)/輸出循環(huán)隊(duì)列q的元素inti;if(q->front!=q->rear)/循環(huán)隊(duì)列非空,
10、輸出隊(duì)列元素printf("輸出循環(huán)隊(duì)列元素:”);i=q->front;elseprintf("queueEmpty");do(i=(i+1)%maxlen;printf("%d”,q->datai);while(i!=q->rear);elseprintf("隊(duì)列為空!");intmain()(SeqQueue*q;inti,y;q=InitQueue(q);/建立空循環(huán)隊(duì)列printf(-請(qǐng)輸入5個(gè)元素");for(i=0;i<5;i+)/入隊(duì)5個(gè)元素(scanf("%d”,&
11、y);Add(q,y);display(q);/輸出循環(huán)隊(duì)列元素for(i=0;i<5;i+)/把5個(gè)元素出隊(duì)(Delete(q);printf("n請(qǐng)輸入1個(gè)元素");scanf("%d”,&y);/再入隊(duì)一個(gè)元素Add(q,y);display(q);/再輸出循環(huán)隊(duì)列元素return0;(2)實(shí)現(xiàn)鏈隊(duì)列的入隊(duì)和出隊(duì)操作問題分析本程序要求實(shí)現(xiàn)建立含有若干個(gè)元素的鏈隊(duì)列,并實(shí)現(xiàn)鏈隊(duì)列入隊(duì)和出隊(duì)操完成該實(shí)驗(yàn)需要以下4個(gè)子任務(wù): 定義一個(gè)鏈隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義鏈隊(duì)列的基本算法。 定義一個(gè)display()函數(shù)實(shí)現(xiàn)隊(duì)歹U元素的輸出看入隊(duì)是否成功 通過隊(duì)列的
12、基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作 在主函數(shù)中完成操作測(cè)試數(shù)據(jù)設(shè)計(jì)如下:123451. 6概要設(shè)計(jì)為了實(shí)現(xiàn)上述程序功能,需要:。聲明一個(gè)鏈隊(duì)列定義出鏈隊(duì)列的基本算法,笆通過鍵盤輸入5個(gè)整數(shù),入隊(duì),出隊(duì)在主函數(shù)中先往隊(duì)列里輸入5個(gè)元素,然后入隊(duì),輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用display()函數(shù)看是否出隊(duì)。2)本程序包含6個(gè)函數(shù):2. 1主函數(shù)main()置空隊(duì):InitQueue()判對(duì)空:QueueEmpty()入隊(duì):Add()出隊(duì):Delete()display()各函數(shù)關(guān)系如下:Main()SetQueue()QueueEmpty()Add()Delete()display()4、詳細(xì)
13、設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對(duì)每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼。鏈隊(duì)列#definemaxlen10typedefstructnode(intdata;structnode*next;LinkList;typedefstruct(LinkList*front,*rear;LinkQueue;LinkQueue*q;(1) 隊(duì)列基本算法LinkQueue*SetQueue()/建立一個(gè)空鏈隊(duì)歹U(q=(LinkQueue*)malloc(sizeof(LinkQueue);q->front=(LinkList*)malloc(sizeof(LinkList);q
14、->front->next=NULL;q->rear=q->front;returnq;intQueueEmpty(LinkQueue*q)(/判斷隊(duì)歹U是否為空if(q->rear=q->front)return1;elsereturn0;LinkQueue*Add(LinkQueue*q,intx)/入隊(duì)(LinkList*p;p=(LinkList*)malloc(sizeof(LinkList);p->data=x;p->next=NULL;q->rear->next=p;q->rear=p;returnq;LinkQu
15、eue*Delete(LinkQueue*q)(出隊(duì)LinkList*p;if(!QueueEmpty(q)p=q->front->next;q->front->next=p->next;if(p->next=NULL)q->rear=q->front;free(p);returnq;elseprintf("queueEmpty");(2) 用display()函數(shù)輸出鏈隊(duì)列元素voiddisplay(LinkQueue*q)/輸出鏈隊(duì)歹U的元素(LinkList*p;p=q->front->next;if(p!=
16、NULL)(printf("輸出鏈隊(duì)元素");while(p!=NULL)(printf("%2d",p->data);p=p->next;elseprintf("n鏈隊(duì)為空");(3) 在主函數(shù)中先往隊(duì)列里輸入5個(gè)元素,輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用display()函數(shù)看是否出隊(duì)。intmain()(inti,y=0;SetQueue();/建立空鏈隊(duì)列display(q);printf("n請(qǐng)輸入5個(gè)元素");for(i=0;i<5;i+)/入隊(duì)5個(gè)元素scanf("%d&
17、quot;,&y);Add(q,y);display(q);for(i=0;i<5;i+)/把5個(gè)元素出隊(duì)Delete(q);display(q);/看是否出隊(duì)成功return0;4、調(diào)試分析編譯無錯(cuò)誤5、用戶使用說明程序名為class12exe,在DEBUG文件夾里面。運(yùn)行環(huán)境VisualC+6.0。6、測(cè)試結(jié)果旌隊(duì)為中訪輸入S個(gè)無索12345常出施隊(duì)元素12345限隊(duì)為空力reasanykeytocontinue7、附錄#include<stdio.h>#include<stdlib.h>#definemaxlen10typedefstructnode
18、intdata;structnode*next;LinkList;typedefstructLinkList*front,*rear;LinkQueue;LinkQueue*q;LinkQueue*SetQueue()/建立一個(gè)空鏈隊(duì)列(q=(LinkQueue*)malloc(sizeof(LinkQueue);q->front=(LinkList*)malloc(sizeof(LinkList);q->front->next=NULL;q->rear=q->front;returnq;intQueueEmpty(LinkQueue*q)(/判斷隊(duì)列是否為空if
19、(q->rear=q->front)return1;elsereturn0;LinkQueue*Add(LinkQueue*q,intx)/入隊(duì)(LinkList*p;p=(LinkList*)malloc(sizeof(LinkList);p->data=x;p->next=NULL;q->rear->next=p;q->rear=p;returnq;LinkQueue*Delete(LinkQueue*q)(/出隊(duì)LinkList*p;if(!QueueEmpty(q)p=q->front->next;q->front->n
20、ext=p->next;if(p->next=NULL)q->rear=q->front;free(p);returnq;elseprintf("queueEmpty");voiddisplay(LinkQueue*q)/輸出鏈隊(duì)列的元素LinkList*p;p=q->front->next;if(p!=NULL)printf(-輸出鏈隊(duì)元素");while(p!=NULL)(printf("%2d”,p->data);p=p->next;elseprintf("n鏈隊(duì)為空");intm
21、ain()(inti,y=0;SetQueue();/建立鏈隊(duì)列display(q);printf("n請(qǐng)輸入5個(gè)元素");for(i=0;i<5;i+)/入隊(duì)5個(gè)元素(scanf("%d”,&y);Add(q,y);display(q);for(i=0;i<5;i+)/把5個(gè)元素出隊(duì)(Delete(q);/看是否出隊(duì)成功display(q);return0;實(shí)驗(yàn)題目2:寫出下列程序段的輸出結(jié)果,并通過程序運(yùn)行來驗(yàn)證問題分析完成該實(shí)驗(yàn)需要以下4個(gè)子任務(wù): 定義一個(gè)循環(huán)隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義隊(duì)列的基本算法。 定義一個(gè)print()函數(shù)實(shí)現(xiàn)程序 通過
22、隊(duì)列的基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作(4在主函數(shù)中完成操作測(cè)試數(shù)據(jù)設(shè)計(jì)如下:1. 概要設(shè)計(jì)為了實(shí)現(xiàn)上述程序功能,需要:。聲明一個(gè)循環(huán)隊(duì)列定義出隊(duì)列的基本算法,笆在主函數(shù)調(diào)用print()函數(shù)看是否出隊(duì)3)本程序包含8個(gè)函數(shù):1主函數(shù)main()置空隊(duì):InitQueue()判對(duì)空:QueueEmpty()判隊(duì)滿:QueueFull()入隊(duì):Add()出隊(duì):Delete()display()GetHead()Main()各函數(shù)關(guān)系如下:GetHead()InitQueue()QueueEmpty()QueueFull()Add()MainDelete()print()5、詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的
23、所有的數(shù)據(jù)類型,對(duì)每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼。循環(huán)隊(duì)列#definemaxlen10typedefstruct(chardatamaxlen;intfront;intrear;SeqQueue;(1) 隊(duì)歹0基本算法SeqQueue*InitQueue(SeqQueue*q)/建立一個(gè)空循環(huán)隊(duì)歹U(q=(SeqQueue*)malloc(sizeof(SeqQueue);q->front=0;q->rear=0;returnq;intQueueFull(SeqQueue*q)(if(q->front=(q->rear+1)%maxlen)retur
24、n1;elsereturn0;判斷隊(duì)列是否為滿intQueueEmpty(SeqQueue*q)(/判斷隊(duì)列是否為空if(q->rear=q->front)return1;elsereturn0;charGetHead(SeqQueue*q)(/取棧頂元素if(!QueueEmpty(q)returnq->data(q->front+1)%maxlen;elseprintf("queueEmpty");voidAdd(SeqQueue*q,charx)/入隊(duì)if(!QueueFull(q)(q->rear=(q->rear+1)%maxl
25、en;q->dataq->rear=x;elseprintf("queuefull");voidDelete(SeqQueue*q)(出隊(duì)if(!QueueEmpty(q)q->front=(q->front+1)%maxlen;elseprintf("queueEmpty");(2) 用print()函數(shù)驗(yàn)證程序voidprint(SeqQueue*q)(charx,y,t;x='e'y='c'Add(q,'h');Add(q,'r');Add(q,y);x=Get
26、Head(q);Delete(q);Add(q,x);x=GetHead(q);Delete(q);Add(q,'a');while(QueueEmpty(q)=0)(y=GetHead(q);Delete(q);printf("%c",y);printf("%c",x);(3) 在主函數(shù)中調(diào)用print()函數(shù)驗(yàn)證程序intmain()(SeqQueue*q;q=InitQueue(q);print(q);return0;4、調(diào)試分析編譯無錯(cuò)誤5、用戶使用說明程序名為class2.exe,在DEBUG文件夾里面。運(yùn)行環(huán)境VisualC+6.0。6、測(cè)試結(jié)果arPressanykeytocontinue7、附錄#include<stdio.h>#include<stdlib.h>#definemaxlen10typedefstructchardatamaxlen;intfront;intrear;SeqQueue;SeqQueue*InitQueue(SeqQueue*q)/建立一個(gè)空循環(huán)隊(duì)列(q=(SeqQueue*)malloc(sizeof(SeqQueue);q->
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3418-2024林草電子公文處理流程及系統(tǒng)運(yùn)行管理規(guī)范
- 四年級(jí)數(shù)學(xué)上聽評(píng)課記錄
- 湘教版數(shù)學(xué)七年級(jí)下冊(cè)3.2《提多項(xiàng)式公因式》聽評(píng)課記錄
- 生活保障信托協(xié)議書(2篇)
- 環(huán)保工程承包協(xié)議書
- 新版湘教版秋八年級(jí)數(shù)學(xué)上冊(cè)第三章實(shí)數(shù)課題實(shí)數(shù)的運(yùn)算和大小比較聽評(píng)課記錄
- 人教部編版七年級(jí)道德與法治上冊(cè):6.2《師生交往》聽課評(píng)課記錄1
- 湘教版數(shù)學(xué)七年級(jí)下冊(cè)《4.2 平移》聽評(píng)課記錄
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)《閱讀材料 楊輝三角與兩數(shù)和的乘方》聽評(píng)課記錄2
- 新北師大版小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)《教室》聽評(píng)課記錄
- 二零二五年度電梯安裝工程監(jiān)理合同4篇
- 2025年中國儲(chǔ)備棉管理有限公司招聘筆試參考題庫含答案解析
- 2025年華能新能源股份有限公司招聘筆試參考題庫含答案解析
- 《中國心力衰竭診斷和治療指南(2024)》解讀完整版
- 初中教學(xué)常規(guī)培訓(xùn)
- 《建筑平面圖的繪制》課件
- 醫(yī)院審計(jì)科科長述職報(bào)告
- 《檔案管理課件》課件
- 2024年度中國共產(chǎn)主義共青團(tuán)團(tuán)課課件版
- 2025年中考物理終極押題猜想(新疆卷)(全解全析)
- 1《讀懂彼此的心》(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治五年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論