數(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頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)4循環(huán)隊(duì)列的實(shí)現(xiàn)和運(yùn)算_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、1、 實(shí)驗(yàn)?zāi)康?1)掌握隊(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ù)類型:#define MAXLEN 10 typedef struct int dataMAXLEN;Int front ,rear;cseque

2、ue;(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é)果,并截圖。源代碼#include<>#define MAXLEN 10typedef struct int dataMAXLEN;/定義數(shù)據(jù)的類型int front,rear;/定義隊(duì)頭、隊(duì)尾指針csequeue;csequeue q;void IniQueue()/ 初始化隊(duì)列/入隊(duì)函數(shù) =MAXLEN-1;void InQueue() int x ;printf("ntt 輸入一個(gè)入隊(duì)的整數(shù)數(shù)

4、據(jù): ");scanf("%d",&x);if =+1) % MAXLEN ) printf("ntt 隊(duì)滿,不能入隊(duì)! n"); return; =+1) % MAXLEN;=x;printf("ntt入隊(duì)成功! n");void Outsequeue()/ 出隊(duì)函數(shù) if = printf ("ntt 此隊(duì)列為空! "); return ;/隊(duì)空不能出隊(duì)else =+1) % MAXLEN;printf("ntt出隊(duì)元素為:dn",); 輸出隊(duì)頭元素return;/顯示函數(shù)

5、void ShowQueue() int k=;if (k= printf("ntt此隊(duì)列為空! n"); return;printf("ntt此隊(duì)列元素為:");do k=(k+1)%MAXLEN;printf("%4d",k); while(k!=;printf("n");int length() int k;k= MAXLEN;return k;void main()/ 主函數(shù) int i=1;int choice;IniQueue();while (i)printf("ntt循環(huán)隊(duì)列n"

6、);printf("ntt*");printf("ntt*進(jìn)隊(duì)*");printf("ntt*2出隊(duì)*");printf("ntt*3顯示*");printf("ntt*4求隊(duì)列長度*");printf("ntt*0返回*");printf("ntt* *");printf("nn皿請選擇菜單號:");scanf("%d",&choice);switch(choice) case 1: InQueue();

7、break;case 2: Outsequeue(); break;case 3: ShowQueue(); break;case 4: printf("ntt 隊(duì)列長度為:%d n",length();break;case 0: i=0; break;5、 測試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果(可以抓圖粘貼)(1)菜單顯示:循環(huán)隊(duì)列隊(duì)隊(duì)一回進(jìn)嚏嚏H H H 時(shí)一司 M K 曾時(shí) M K ,修理 M利 M W H W m- M M利 M M M W M M M 耳諫置請選擇菜單號3(2)入隊(duì):請選擇菜單號二1輸入一個(gè)人隊(duì)的整數(shù)數(shù)據(jù):通 人隊(duì)成功,(3)隊(duì)滿(已入隊(duì)9個(gè)元素):請選擇菜單號二1

8、輸入i個(gè)人隊(duì)的整數(shù)數(shù)據(jù):21 隊(duì)滿,不能入隊(duì),(4)出隊(duì):清幽圣菜單號二 2 出隊(duì)元素為:仃(5)隊(duì)空(已出隊(duì)9個(gè)元素):請選»菜單號二2 此隊(duì)列為空t(6)顯示隊(duì)中的元素:此隊(duì)列元素為;請選擇菜單號,311 13 14 1516 17 18 1920(7)求隊(duì)長:請選擇菜單號 4 隊(duì)列長度為二號6、 結(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ì)過程也是對前面線性表知識的鞏固。再者,用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)這 個(gè)程序,實(shí)際上是設(shè)計(jì)一個(gè)帶有頭指針( fro

溫馨提示

  • 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

提交評論