數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)4循環(huán)隊(duì)列的實(shí)現(xiàn)和運(yùn)算_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)4循環(huán)隊(duì)列的實(shí)現(xiàn)和運(yùn)算_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)4循環(huán)隊(duì)列的實(shí)現(xiàn)和運(yùn)算_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1、實(shí)驗(yàn)?zāi)康模?)掌握隊(duì)列“先進(jìn)先出”的特點(diǎn);(2)復(fù)習(xí)隊(duì)列的入隊(duì)、出對、插入、刪除等基本操作;(3)掌握循環(huán)隊(duì)列的特點(diǎn),以及循環(huán)隊(duì)列的應(yīng)用。2、實(shí)驗(yàn)內(nèi)容(1)在順序存儲(chǔ)結(jié)構(gòu)上實(shí)現(xiàn)輸出受限制的雙端循環(huán)隊(duì)列的入隊(duì)和出隊(duì)(只允許隊(duì)頭輸出)算法;(2) 設(shè)每個(gè)元素表示一個(gè)待處理的作業(yè),元素值表示作業(yè)的預(yù)計(jì)時(shí)間。入隊(duì)列采取簡化的短作業(yè)優(yōu)先原則,若一個(gè)新提交的作業(yè)的預(yù)計(jì)執(zhí)行時(shí)間小于隊(duì)頭和隊(duì)尾作業(yè)的平均時(shí)間,則插入在對頭,否則插入在隊(duì)尾;(3)循環(huán)隊(duì)列數(shù)據(jù)類型:#defi ne MAXLEN 10typedef struct int dataMAXLEN;Int fron t ,rear;csequeue

2、;(4) 入隊(duì)作業(yè)處理的預(yù)計(jì)時(shí)間可以用隨機(jī)函數(shù)rand()產(chǎn)生,也可以從鍵盤輸入。3、實(shí)驗(yàn)要求(1)用C ( C+)語言完成算法設(shè)計(jì)和程序設(shè)計(jì)。(2)上機(jī)調(diào)試通過實(shí)驗(yàn)程序。(3)輸入數(shù)據(jù),檢驗(yàn)程序運(yùn)行結(jié)果。(4)給出具體的算法分析,包括時(shí)間復(fù)雜度和空間復(fù)雜度等。(5)撰寫實(shí)驗(yàn)報(bào)告(把輸入實(shí)驗(yàn)數(shù)據(jù)及運(yùn)行結(jié)果用抓圖的形式粘貼到實(shí)驗(yàn)報(bào)告上)。4、實(shí)驗(yàn)步驟與源程序?qū)嶒?yàn)步驟先從具體的問題中抽象出適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)出相應(yīng)的算法,其中,需要設(shè)計(jì)一個(gè)主函 數(shù)來實(shí)現(xiàn)菜單的輸出,設(shè)計(jì)另外五個(gè)函數(shù)來求分別實(shí)現(xiàn)初始化隊(duì)列,入隊(duì),出隊(duì),顯示,求隊(duì)列長度,最后,串接函數(shù),并調(diào)試程序,在調(diào)試的時(shí)候,我先進(jìn)行入隊(duì)操作,

3、輸入9個(gè)數(shù)據(jù)之后,程序顯示隊(duì)滿,不能入隊(duì),然后開始出隊(duì)操作,輸出9個(gè)數(shù)字之后,程序顯示隊(duì)空,再進(jìn)行入隊(duì),顯示隊(duì)中的各個(gè)元素,并求隊(duì)長,多次調(diào)試后,發(fā)現(xiàn)沒有問題,得出實(shí)驗(yàn)結(jié)果,并截圖。源代碼#in clude<stdio.h>#defi ne MAXLEN 10typedef struct int dataMAXLEN;/int fron t,rear;/csequeue;csequeue q;void Ini Queue()定義數(shù)據(jù)的類型定義隊(duì)頭、隊(duì)尾指針/初始化隊(duì)列 q.fro nt=q.rear=MAXLEN-1;入隊(duì)函數(shù)void In Queue()/ int x ;prin

4、 tf("ntt輸入一個(gè)入隊(duì)的整數(shù)數(shù)據(jù):”);scan f("%d",& x);if (q.fro nt=(q.rear+1) % MAXLEN ) printf("ntt隊(duì)滿,不能入隊(duì)! n"); return; q.rear=(q.rear+1) % MAXLEN;q.dataq.rear=x;printf("ntt入隊(duì)成功! n");出隊(duì)函數(shù)隊(duì)空不能出隊(duì)void Outsequeue()/ if (q.fron t=q.rear) printf ("ntt此隊(duì)列為空! "); return

5、;/else q.fro nt=(q.fro nt+1) % MAXLEN;輸出隊(duì)頭元素prin tf("ntt出隊(duì)元素為:%dn",q.dataq.fro nt); /return;void ShowQueue()/顯示函數(shù)if (k=q.rear) prin tf("nttprin tf("ntt int k=q.fr ont;此隊(duì)列為空! n"); return;此隊(duì)列元素為:");do k=(k+1)%MAXLEN;prin tf("%4d",q.datak); while(k!=q.rear);prin

6、tf("n");int len gth() int k;k=(q.rear-q.fro nt+MAXLEN)% MAXLEN;return k;void main()/主函數(shù) int i=1;int choice;Ini Queue();while (i)prin tf("ntt循環(huán)隊(duì)列n");prin tf("ntt*1進(jìn)隊(duì)*"prin tf("ntt*2出隊(duì)*"prin tf("ntt*3顯示*"prin tf("ntt*4求隊(duì)列長度*"prin tf("ntt

7、*0返回*");););););prin tf("ntt* *");prin tf("ntt* *");prin tf("nntt請選擇菜單號:”);scan f("%d",&choice);switch(choice) case 1: In Queue(); break;case 2: Outsequeue(); break;case 3: ShowQueue(); break;case 4: prin tf("ntt隊(duì)列長度為:%d n",length();break;case 0:

8、 i=0; break;5、測試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果(可以抓圖粘貼)(1) 菜單顯示:歹隊(duì)環(huán)循J4二X 二 二* M* 七 二 M從快TK叵長列 進(jìn)岀顯求返 - -請選擇菜單號:(2) 入隊(duì):請選擇菜單號:1輸入一個(gè)入隊(duì)的整數(shù)數(shù)據(jù) 18入(3) 隊(duì)滿(已入隊(duì)9個(gè)元素):請選擇菜單號乂 1輸入T入隊(duì)的整數(shù)數(shù)據(jù);21 隊(duì)滿*不能入隊(duì)?(4) 出隊(duì):請選擇菜單號:2 出隊(duì)元素為;1?(5) 隊(duì)空(已出隊(duì)9個(gè)元素):請囲睪菜單號:2 此臥列為空匸(6) 顯示隊(duì)中的元素:請選擇菜單號:3此隊(duì)列元素為;111314151617 181920(7) 求隊(duì)長:-5 -請選擇菜單號:4隊(duì)列長度為:96、結(jié)果分析與實(shí)驗(yàn)體會(huì)本次實(shí)驗(yàn)是參考了范例程序,經(jīng)過自己的改寫,從而實(shí)現(xiàn)要求。先做簡單的輸出,一步步的再 做其它格式的設(shè)置。在實(shí)驗(yàn)的過程中,我加深了對隊(duì)列各種操作的理解,因?yàn)殛?duì)列是“先進(jìn)先出” 的操作受限制的線性表,一般隊(duì)列只允許在隊(duì)尾進(jìn)行插入操作,在隊(duì)頭進(jìn)行刪除操作,元素之間存 在一對一的關(guān)系,本程序的設(shè)計(jì)過程也是對前面線性表知識(shí)的鞏固。再者,用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)這 個(gè)程序,實(shí)際上是設(shè)計(jì)一個(gè)帶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論