數(shù)據(jù)結(jié)構(gòu)隊(duì)列實(shí)驗(yàn)報(bào)告_第1頁
數(shù)據(jù)結(jié)構(gòu)隊(duì)列實(shí)驗(yàn)報(bào)告_第2頁
數(shù)據(jù)結(jié)構(gòu)隊(duì)列實(shí)驗(yàn)報(bào)告_第3頁
數(shù)據(jù)結(jié)構(gòu)隊(duì)列實(shí)驗(yàn)報(bào)告_第4頁
數(shù)據(jù)結(jié)構(gòu)隊(duì)列實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、隊(duì)列實(shí)驗(yàn)報(bào)告小組成員:xxxxxxxx 日期:xxxxxxxx、需求分析(xxx )1鏈隊(duì)列1)在木演示程序屮,首先要鏈隊(duì)列添加一個(gè)頭結(jié)點(diǎn),并判斷隊(duì)列是否為空,它只允許在表的一端進(jìn) 行插入,而在另一端刪除元索,允許插入的一段叫隊(duì)尾,允許刪除的一端則為對(duì)頭,接著訪問隊(duì)列中 所有元素,并輸出,輸出是每個(gè)元素z間用空格來完成。最后銷毀隊(duì)列,釋放空間。2)演示程序以用戶和計(jì)算機(jī)的對(duì)話方式執(zhí)行,即在計(jì)算機(jī)終端上顯示“歡迎來到鏈隊(duì)列”“元素入隊(duì)” “元素出隊(duì)”“銷毀隊(duì)列”“清空隊(duì)列”之后。由用戶在鍵盤上輸入演示程序中規(guī)定的運(yùn)算命令,相應(yīng) 的運(yùn)算數(shù)據(jù)和顯示結(jié)果顯示在其后。3)程序執(zhí)行的命令包括:歡迎來到鏈隊(duì)

2、列1輸出隊(duì)列長(zhǎng)度2元素入隊(duì)3元素出隊(duì)4銷毀隊(duì)列5清空隊(duì)列6對(duì)頭元素7退出鏈隊(duì)列4)測(cè)試數(shù)據(jù)入隊(duì)12345分別執(zhí)行“元索入隊(duì)” “元索出隊(duì)” “銷毀隊(duì)列” “清空隊(duì)列”等操作。2.順序隊(duì)列1)在本演示程序屮,首先耍順序隊(duì)列添加一個(gè)頭結(jié)點(diǎn),并判斷隊(duì)列是否為空,它只允許在表的一端 進(jìn)行插入,而在另一端刪除元素,允許插入的一段叫隊(duì)尾,允許刪除的一端則為對(duì)頭,接著訪問隊(duì)列 屮所有元素,并輸出,輸出是每個(gè)元素之間用空格來完成。2)演示程序以用戶和計(jì)算機(jī)的對(duì)話方式執(zhí)行,即在計(jì)算機(jī)終端上顯示“歡迎來到鏈隊(duì)列”“元索入隊(duì)” “元素出隊(duì)” “取得頭結(jié)點(diǎn)”“輸出顯示” z后。由用戶在鍵盤上輸入演示程序中規(guī)定的運(yùn)算命

3、令,相應(yīng)的運(yùn)算數(shù)據(jù)和顯示結(jié)果顯示在其后。3)程序執(zhí)行的命令包扌乩歡迎來到順序隊(duì)列1入隊(duì)2出隊(duì)3判斷是否為空4取得頭結(jié)點(diǎn)5輸出顯示6退出順序隊(duì)列4)測(cè)試數(shù)據(jù)入隊(duì)12345分別執(zhí)行“元素入隊(duì)” “元素出隊(duì)”等操作。3循環(huán)隊(duì)列1) 在木演示程序中,首先耍順序隊(duì)列添加一個(gè)頭結(jié)點(diǎn),并判斷隊(duì)列是否為空,初始化建空隊(duì)列時(shí), 令front=rear=0,每當(dāng)插入新的隊(duì)列尾元素時(shí),“尾指針增1”;每當(dāng)刪除隊(duì)列頭元素時(shí),“頭指針增1”。 接著訪問隊(duì)列中所有元素,并輸出,輸出是每個(gè)元素之間用空格來完成。2) 演示程序以用戶和計(jì)算機(jī)的對(duì)話方式執(zhí)行,即在計(jì)算機(jī)終端上顯示“歡迎來到鏈隊(duì)列”“元素入隊(duì)” “元素出隊(duì)”“取得

4、頭結(jié)點(diǎn)” “輸出顯示”之后。由用戶在鍵盤上輸入演示程序屮規(guī)定的運(yùn)算命令,相應(yīng)的運(yùn)算數(shù)據(jù)和顯示結(jié)果顯示在其后。3) 程序執(zhí)行的命令包括:歡迎來到循環(huán)隊(duì)列1入隊(duì)2出隊(duì)3判斷是否為空4取得頭結(jié)點(diǎn)5輸出顯小6退出順序隊(duì)列4) 測(cè)試數(shù)據(jù)入隊(duì)12345分別執(zhí)行“元索入隊(duì)” “元索出隊(duì)”等操作。二.概要設(shè)計(jì)(xxxx)1為實(shí)現(xiàn)上述算法,需要順序表的抽彖數(shù)據(jù)類型,抽彖數(shù)據(jù)類型定義如下:adt queue 數(shù)據(jù)對(duì)象:d= ai | ai eelemset, i=l, 2, 3., n, n>=0 數(shù)據(jù)關(guān)系:r= <ai-l, ai> | ai-1, ai gd, i=2,., n 基本操作:i

5、nitqueue (&q)操作結(jié)果:構(gòu)造一個(gè)空隊(duì)列。destroyqueue (&q)初始條件:隊(duì)列q已存在。操作結(jié)果:隊(duì)列q已被銷毀。clearqueue(&q)初始條件:隊(duì)列q已存在。操作結(jié)果:將q清為空隊(duì)列。queucempty (q)初始條件:隊(duì)列q已存在。操作結(jié)果:若q為空隊(duì)列,則返冋true,否則falseoqueuelength(q)初始條件:隊(duì)列q已存在。操作結(jié)果:返回q元素的個(gè)數(shù),即隊(duì)列的長(zhǎng)度。gethead (q, &e)初始條件:q為非空隊(duì)列。操作結(jié)果:用e返回q的隊(duì)頭元素。enqueue (&q, e)初始條件:隊(duì)列q已存在。操作

6、結(jié)果:插入e返回q的新的隊(duì)尾元素。dequeue (&q, &e)初始條件:q為非空隊(duì)列。 操作結(jié)果:刪除q的隊(duì)頭元素,并用e返回其值。adt queue2.單鏈隊(duì)列typcdcf structqnodcqelemtype;structqnode *next;/指針域qnode, queueptr;typcdcfstructqueueptr front;queueptr rear;linkqueue;status tni tqueue (linkqueue&q)構(gòu)造一個(gè)空隊(duì)列。status destroyqueue (linkqueue&q)銷毀隊(duì)列q, q不存

7、在。status clearqueue(linkqueue&q)將q清為空隊(duì)列。status queucempty(linkqucucq)/若q為空隊(duì)列,則返回true,否則falseointqueuelength(linkqueueq)返冋q元素的個(gè)數(shù),即隊(duì)列的長(zhǎng)度。status gethead(linkqueueq, qelemtype&e)若隊(duì)列不為空,則用e返回q的隊(duì)頭元索,并返回ok;否則返回errorostatus enqueue (linkqucuc&q, qelemtype c)插入e返回q的新的隊(duì)尾元素。status dequeue (linkqueu

8、e&q, qelemtype&e)/若隊(duì)列不空,則刪除q的隊(duì)頭元素,并用e返回其值,并返回0k;否則返回erroro三詳細(xì)設(shè)計(jì)(xxx)1 順序隊(duì)列的實(shí)現(xiàn)和運(yùn)算1) 元素的類型typedefstructdatatypedatamaxsize;i ntfront, rear;squcuc;2) 空的隊(duì)列的構(gòu)造void initsqueue (squeue *p)/*初始化隊(duì)列*/p->front=0;p->rear=o;3) 元索的入隊(duì)int ensqucucl (squcucl *q, datatype c)/*入隊(duì)*/if (q->rear+l)% maxs

9、ize = q->front)printf (z,n 隊(duì)列已滿n);rcturn 0;4) 元素的出隊(duì)int desqueuel (squeuel *q, datatype *e)/*出隊(duì)*/if (q->front=q->rcar)printf (,z隊(duì)列已空,無法出隊(duì)! “);return 0;*e=q->dataq->front;q->front=(q->front+l)%maxs!ze;return 1;5) 判斷隊(duì)列是否為空int qucucemptyl (squcucl q) / 判斷是否為空if (q. front=q. rear)ret

10、urn 1;el sercturn 0;6) 隊(duì)頭元素的取值的算法int getheadl (squeuel *q, datatype *e)/ 取對(duì)頭元素if (q->front=q->rcar)printf(,z隊(duì)列已空,無法出隊(duì)!);return 0;else*e=q->dataq->front;return 1;7) 遍歷順序隊(duì)列的算法void displayl (squeuel q) /遍歷順序?qū)α衟rintf (,z此隊(duì)列數(shù)據(jù)為:n");if (q. front=q. rear) printf (,z此隊(duì)列為空!);else while(q. fr

11、ont<q. rear)printf ("%dt", q. dataq front);q. front=(q. front+1) %maxs 1 ze;printf (n);2.鏈?zhǔn)疥?duì)列的實(shí)現(xiàn)和運(yùn)算1) 構(gòu)造空隊(duì)列的算法void initqueue2(linkqueue *q) /構(gòu)造一個(gè)空隊(duì)列qq->front=q->rear=mal1oc(si zeof(qnode);if (!q->front)exit(1);q->front->next=null;2) 元素的入隊(duì)算法void enqueue2(linkqueue *q, qele

12、mtype e)/將元素 e 進(jìn)隊(duì)queueptr p;p= (queueptr)malloc (sizeof (qnode) ;/創(chuàng)建新節(jié)點(diǎn)if (!p) /如果內(nèi)存分配成功exit (1);p->data=e;/初始化新節(jié)點(diǎn)數(shù)據(jù)為ep->next=null;q->rear->next二p;q->rear=p;3) 元索的出隊(duì)的算法int dequeue2 (linkqueue *q, qelemtype e)/隊(duì)頭結(jié)點(diǎn)出隊(duì),將出隊(duì)的元索存入e queueptr p;if (q->front=q->rear) /隊(duì)列為空return 0;p=q-&g

13、t;front->next;/初始化temp為要岀隊(duì)的結(jié)點(diǎn)指針if (q->front->next=q->rear) /要出隊(duì)的結(jié)點(diǎn)為最后一個(gè)結(jié)點(diǎn) q->rear=q->front;e=p->data;/要出隊(duì)的數(shù)據(jù)元索為e q->front->ncxt=p->ncxt;/使 b一個(gè)結(jié)點(diǎn)變?yōu)閷?duì)頭 free(p) ;/刪除要岀隊(duì)的結(jié)點(diǎn)return e;4) 隊(duì)列的長(zhǎng)度算法void queuelength2(linkqucuc *q)/返回隊(duì)列長(zhǎng)度queueptr p;int i二0;p=q->front_>next;whil

14、e(p)+i;p二p->next;printfc鏈隊(duì)列長(zhǎng)度為:%dn,i);5) 隊(duì)列的銷毀void destroyqueue2(linkqueue *q)while (q->front) q->rear=q->front->next; free (q->front);q->front=q->rear;if (!q->rcar)free (q->rear);free (q->front);6) 隊(duì)列的輸出算法void output2 (linkqueue *q)/輸岀隊(duì)列queueptr p;p=q->front->

15、ncxt;printf c鏈隊(duì)列元素依次為:");while (p)printf (z,%d->z,, p->data);p=p->next;printf (rt);7) 隊(duì)列的清空的算法queueptr temp二q->front->next;whi1e (temp)queueptrtp=temp;temp=temp->next; free(tp);temp=q->front;q->front=q->rear=null;free(temp);8) 返回對(duì)頭元索的算法一int gctllcad2(linkqueue *q, int

16、 *c)/返回對(duì)頭結(jié)點(diǎn)元素,存入 c if (q->front=q->rear)return 0;*e=q->front->next->data;rctunn 1;3 循環(huán)隊(duì)列的實(shí)現(xiàn)和運(yùn)算1) 隊(duì)列的初始化算法void tnitsqueue3(squeue3 *p)/*初始化隊(duì)列*/p->base= (datatype *)malloc (sizeof (datatype)* maxsize); p->front=0;p->rear=0;2) 入隊(duì)的算法int ensqueue3 (squeue3 *q, datatype e)/*入隊(duì)*/if

17、(q->rear+l)% maxsize 二二 q->front)printf (,zn 隊(duì)列已滿n);return 0;elseq->base q->rear =e; /*將接收到得值付給隊(duì)尾所指的節(jié)點(diǎn)*/ q->rcar= (q->rcar+l) % maxsize;/*隊(duì)尾向后移一位完成入隊(duì)*/ return 1;3) 出隊(duì)的算法int desqueue3(squeue3 *q, datatype *e)/*出隊(duì)*/if (q->front=q->rcar) printf (,z隊(duì)列已空,無法出隊(duì)! “); return 0;*e=q-&g

18、t;baseq->front;q->front=(q->front+l)%maxsize;return 1;4判斷隊(duì)列是否為空的算法int queueempty3(squeue3 q) / 判斷是否為空if (q. front=q. rear)return 1;elsereturn 0;5) 對(duì)頭元索的返還的算法一int gcthcad3 (squcuc3 *q, datatype *e)/ 取對(duì)頭元素if (q->front=q->rear)printf(z,隊(duì)列已空,無法出隊(duì)!“);return 0;else*e=q->baseq->front;r

19、eturn 1;6) 遍丿力循環(huán)隊(duì)列的算法void display3(squeue3 *q)/遍歷循環(huán)對(duì)列int tail;tail=q->front;printf (,z此隊(duì)列數(shù)據(jù)為:n");if (q->front=q->rear)printf (,z此隊(duì)列為空!);el sewhile(tail!=q->rear)printf(%dt,q->basetail);tail二(tail+l)%maxsize;printf (rt);4.主函數(shù)的算法void main() int choice; datatype el;int il, al, xl, s

20、i, jl; int e2, i2, n2, s2, a2; int i3, a3, x3, s3, j3; datatype e3;順序隊(duì)列定義的量鏈隊(duì)列定義的量循環(huán)隊(duì)列定義的量squeuel q1;linkqucuc q;/ /jx ix/ /fx ztxsqueue3 q;/ / lz lz lz l lz lz lz lzlz l lzlz lz lz lz l l/ /choice=l;begin();wh 訂e(choice!=0)scanf ("%ct, &choice);switch(choice)case 1:/順序隊(duì)列 system("cls);

21、initsqueuel(&qi);printf (,z創(chuàng)建隊(duì)列完成!n);printfc請(qǐng)輸入數(shù)據(jù)個(gè)數(shù)jl);scanf ("%d", &jl);for(i 1=1;訂=jl;il+)輸入的數(shù)據(jù)個(gè)數(shù)不要超過maxsize,多了的部分沒冇插入隊(duì)列printfc請(qǐng)輸入第%(1個(gè)數(shù)據(jù):,il);scanf ("%d", &al);ensqueuel(&qi, al);printf (對(duì)頭為:%dn, qi. dataql. front);printf c隊(duì)尾為:%dn, qi. dataql. front+jl-1);displ

22、ayl(qi);sl=-l;startl ();while(si!=0) scanf ("%d", &sl); switch (si)case 0: system(cls); choice=-l; begin(); break;case 1: systein(cls);printf(,z請(qǐng)輸入入隊(duì)元素:n “);scanf(d, &xl);ensqucucl(&qi, xl);displayl(qi);si二-1; start 1 ();break;case 2:system(cls);desqueuel(&q1, &el);disp

23、layl(qi);sl=-l; startl ();break;case 3:system(cls);if (queueemptyl(qi)printf ("此隊(duì)列為空! n);elseprintf c此隊(duì)列不為空! rt);si二t ;startl ();break;case 4: system(cls);gcthcadl (&q1, &el);printf (對(duì)頭元素為:%dn, el);si二-1;startl ();break;case 5: systein(cls); displayl(qi);sl=-l;startl ();break; /switch /

24、while/casel break;/ / /case 2: system(,zcls,z); initqueue2(&q); printf (z,創(chuàng)建隊(duì)列完成! n); printfc輸入將建立鏈隊(duì)列元素的個(gè)數(shù):n2=z/); scanf (ct, &n2);printf (/z請(qǐng)輸入隊(duì)列的元素:rt); for(i2=l;i2<=n2;i2+)printf (請(qǐng)輸入第%d個(gè)元素:",i2); scanf (“ct, &e2);enqueue2(&q, e2);a2二-1;start2 ();while (a2!=0)scanf (d,&

25、;a2);swi tch (a2) case 1:system(cls");queuelength2 (&q);a2二-1;start2 ();break;case 2: system(,zcls,z); printf (,z請(qǐng)輸入入隊(duì)元素:); scanf (d, &e2);enqucuc2 (&q, c2);output2 (&q);a2=-l;start2 ();break;case 3:systcm("cls); e2=dequeue2(&q, e2); output2(&q);printf ctb隊(duì)元素為:%dn,

26、e2);a2=-l;start2 ();break;case 4:destroyqueue2(&q); printf (z,隊(duì)列已銷毀! n);a2=0;systein(cls);choice二t; begin();break;case 5:clear2 (&q);printf (,z隊(duì)列已清空n);ci20;systcm(,/cls/,);choice=-l;begin ();break;case 6: system(z,cls,z);gethead2(&q, &e2);printf (隊(duì)頭元素為:%dn, e2); s2二-1; start2 ();brea

27、k;choice二t;begin();case 0: system(cls);break;/switch/while/case2break;case 3: system(cls); tnitsqueue3(&q);printf (,z創(chuàng)建隊(duì)列完成! n);printf (z,請(qǐng)輸入數(shù)據(jù)個(gè)數(shù)j3二);scanf ("%ct, &j3);/輸入的數(shù)據(jù)個(gè)數(shù)不要超過maxsize,多了的部for(i3=l; i3二j3;i3+)分沒有插入隊(duì)列printf (,z請(qǐng)輸入第%小個(gè)數(shù)據(jù):",i3);scanf ("%ct, &a3);ensqueue3(

28、&q, a3);printf (對(duì)頭為:%dn, q. baseq. front); printf (隊(duì)尾為:%dn, q. baseq. front+j3l); display3(&q);s3二-1;start3 ();while(s3!=0)scanf(d, &s3);switch(s3)case 0:system(z,cl s);choice=-l;begin ();break;case 1:systcm("cls");printf請(qǐng)輸入入隊(duì)元素:n “);scanf ("%ct, &x3);ensqueue3(&q,

29、 x3); display3(&q);s3二-1;start3 ();break;case 2:system(cls");desqueue3(&q, &e3); display3(&q);s3二-1;start3 ();break;case 3:systcm("cls");if (queueempty3(q)printf c此隊(duì)列為空!n);elseprintf (此隊(duì)列不為空! n);s3二-1;start3 ();break;case 4:system(cls);gethead3(&q, &e3);printf

30、(z,對(duì)頭元素為:%dn,e3);s3=-l; start3 ();break; case 5: system(cls");display3(&q);s3二-1; start3 ();break;/switch /wh 訂e/casc 3 break;謝謝使用! ! ! ! n);case 0: printf c break;/ / /嚇、/switch/wh訂e /main順序隊(duì)列1編譯并調(diào)試,運(yùn)行程序。2. 設(shè)計(jì)測(cè)試用例,分析測(cè)試結(jié)果,以驗(yàn)證所完成的系統(tǒng)是否達(dá)到預(yù)期效果。3. 判斷隊(duì)列是否為空。隊(duì)列是否為空的標(biāo)志就是隊(duì)頭指針和隊(duì)尾指針是否同時(shí)指向隊(duì)列中的同一個(gè)位 置,即隊(duì)

31、頭指針和隊(duì)尾指針是否相等。4隊(duì)列滿時(shí)候不能入隊(duì)列,否則會(huì)出現(xiàn)溢出現(xiàn)象。即先要判斷隊(duì)列是否已經(jīng)已滿,因?yàn)殛?duì)尾指針的最 大值是maxqsize,所以通過檢查隊(duì)尾指針rear是否等于maxqsize來判斷隊(duì)列是否已滿。在刪除隊(duì) 首元索時(shí),應(yīng)首先通過隊(duì)頭指針和隊(duì)尾指針是否相等判斷隊(duì)列是否已空。5在元素出隊(duì)操作,先通過隊(duì)頭指針和隊(duì)尾指針是否相等判斷隊(duì)列是否已空,空時(shí)不能操作,這是耍 注意的。*c:usersadministratordesktopdebugj.exe*:入入入入入為為列 r主冃主冃主冃主冃主墾居居居居居 數(shù)數(shù)數(shù)數(shù) tttv 3 4 5為期2 牙趙歡迎來到順序?qū)α?2 3 4 5 0空 列

32、 為點(diǎn)對(duì) 熏顯順 隊(duì)幣得岀出 入芻取曙請(qǐng)選擇操作05:1c:usersadministratordesktopdebugj.exe'i兀系:隊(duì)列數(shù)據(jù)為:23冃捌0歡迎來到順序?qū)α?2 3 4 5 0空 列 為點(diǎn)對(duì)h隊(duì)空得岀岀歡迎來到順序?qū)α锌?列 為點(diǎn)對(duì) 拿示序 曰蛋八顯順 隊(duì)隊(duì)斷得岀岀 as.bs12 3 4 5 0causersxadministratorxdesktopxdebug.exe*z. ! ar v .卜為工?空 列 為占小對(duì) 喜示序 隊(duì)臨得岀岀 入費(fèi)取蠻12 3 4 5 0請(qǐng)選擇攆作05:4w c:usersadministratordesktopdebugj.exe

33、* wc:u$er$admini$tratoade$ktopdebugj.exe"此隊(duì)列糾恬為:234s0駅迎來到順序?qū)α姓?qǐng)選擇操作<»5 >:» press any key to continue_6程序滿足了本次試驗(yàn)的目的和任務(wù)要求,可以進(jìn)行人機(jī)交互,在后來的程序中將會(huì)做些改進(jìn),以增 強(qiáng)人機(jī)交互性。7. 木程序存在較多不足,如有問題,參考用戶手冊(cè)。8. 在程序語句中,原本使用了人量的生僻的函數(shù)名,經(jīng)過改進(jìn),目前使用都是通俗易懂的函數(shù)名稱, 方便用戶理解。鏈隊(duì)列1編譯并調(diào)試,運(yùn)行程序。2設(shè)計(jì)測(cè)試用例,分析測(cè)試結(jié)果,以驗(yàn)證所完成的系統(tǒng)是否達(dá)到預(yù)期效果。

34、3. 要注意設(shè)定一個(gè)在鏈隊(duì)列添加一個(gè)頭結(jié)點(diǎn)并令指針指向頭結(jié)點(diǎn)。同時(shí),刪除不可以在最后面進(jìn)行刪 除,但是插入可以最后一個(gè)進(jìn)行插入,這點(diǎn)需要注意4. 需要分別指向隊(duì)頭和隊(duì)尾的指針。氏fei.kk斤叵.斤巨斤 亦那師元元元元元 一兀立列一一丁 一'-歹 12 3 4 5 列建曇第第第第 taa.aa.aa 建入勢(shì)里冃青青青青青x欠迎來到艷對(duì)歹q度列隊(duì)素隊(duì)贄岀收兀鏈工頭岀 短兀元銷請(qǐng)選擇操作<b5>:2wc:usersadministratordesktopdebugj.exeb瓠歹元勺依次為:1->2->3->4->5->0->歡迎來到鏈對(duì)列*

35、 列 列隊(duì)素隊(duì) 處氏隊(duì)聶工頭岀請(qǐng)選擇撮作<5>:請(qǐng)選擇操作<0-5>:3歡迎來到鏈對(duì)列墜兒系:0列兀素依次為:1_>2->3->4->5->0->.exe12 3 4 5 6 0度<列 列隊(duì)素隊(duì) 岀隊(duì)隊(duì) 筆*賣岀 輸元元銷-請(qǐng)選擇操作<» 5>:1兀素依伏為:2->3->4->5->0-> 素為汽歡迎來到鏈對(duì)列wc:usersadminist12 3 4 5 6 0度長(zhǎng) 列 列隊(duì)隊(duì)隊(duì) 犬岀e兀h 黛賣出t兀元銷漣隊(duì)列長(zhǎng)度為汚歡迎來到佬對(duì)列長(zhǎng) 列列隊(duì)處岀復(fù)兀鏈題賣岀輸兀元銷12

36、3 4 5 6 0請(qǐng)逍擇操作2 5:6歡迎來到錯(cuò)對(duì)列'c:users.administratordesktopdebugj.exeh隊(duì)頭兀索為:2歡迎來到鏈對(duì)列12 3 4 5 6 0浪 列 列隊(duì)元鏈 岀*賣出請(qǐng)選擇操作05 :5.程序滿足了木次試驗(yàn)的口的和任務(wù)要求,可以進(jìn)行人機(jī)交互,在后來的程序屮將會(huì)做些改進(jìn),以增 強(qiáng)人機(jī)交互性。6木程序存在較多不足,如有問題,參考用戶手冊(cè)。7在程序語句屮,原本使用了大量的生僻的函數(shù)名,經(jīng)過改進(jìn),目前使用都是通俗易懂的函數(shù)名稱, 方便用戶理解。 1 x:uier $admini$ti3torde$ktopdebug.exe連隊(duì)列長(zhǎng)度為汚循環(huán)隊(duì)列1 編

37、譯并調(diào)試,運(yùn)行程序。2設(shè)計(jì)測(cè)試用例,分析測(cè)試結(jié)果,以驗(yàn)證所完成的系統(tǒng)是否達(dá)到預(yù)期效果。3為了避免順序隊(duì)列造成的“假溢出”現(xiàn)象,我們通常采用順序循環(huán)隊(duì)列實(shí)現(xiàn)隊(duì)列的順序存儲(chǔ)。4. 隊(duì)頭指針和對(duì)尾指針與隊(duì)列元素之間關(guān)系和順序隊(duì)列一樣,不變。5. 先判斷隊(duì)列是否為空。就是看隊(duì)頭指針和隊(duì)尾指針是否同吋指向隊(duì)列屮的同一個(gè)位置,即隊(duì)頭指針 和隊(duì)尾指針是否相等,空時(shí)不能操作,這是要注意的。6在將元素插入到隊(duì)列之前首先要判斷隊(duì)列是否已經(jīng)已滿,根據(jù)順序循環(huán)隊(duì)列隊(duì)滿條 件front=(rear+l)%maxqsize來判斷隊(duì)列是否已滿。在刪除隊(duì)首元素時(shí),應(yīng)首先通過 隊(duì)頭指針和隊(duì)尾指針是否相等判斷隊(duì)列是否已空。請(qǐng)選擇

38、操作 05: 1歡迎來到循環(huán)對(duì)列12 3 4 5 035 12 3 4 512 3 4 5 列養(yǎng)第第第第:1 入入入入入為為歹 h二一 nj-nj-nuv nuv為據(jù)2汚數(shù)創(chuàng)主墾墾墾墾墾空 列 為占小對(duì) 塞示環(huán) 曰賣顯循 隊(duì)得岀出 ash0:匕隊(duì)列數(shù)據(jù)為:2 3450歡迎來到循環(huán)對(duì)列12 3 4 5 0為占小對(duì) 韋示環(huán) 羹顯循 隊(duì)±>岀t'users'administvtor'appdata'logal'temp'rarsdiaofa'debugxj.exh450歡迎來到循壞對(duì)列12 3 4 5 0空 列 為點(diǎn)對(duì) kiss

39、is 環(huán)岀岀請(qǐng)選擇操作05:3f八工請(qǐng)選擇操作x 05: 4wc:usersadministratorappdatalocaltemprar$dia0.744debugj,exew對(duì)沃??M為2歡迎來到循環(huán)對(duì)列12 3 4 5 0y 一 du 為點(diǎn)對(duì) 嘗不環(huán) 隊(duì) 得出出 -一 一一一 一請(qǐng)選擇操作05:5"c:usersadministratorappdatalocaltemprar$dia0.744debugj,exew兀素為:2歡迎來到循壞對(duì)歹|vi 歹 為點(diǎn)對(duì) 0環(huán) 隊(duì)和得岀岀 i 請(qǐng)選擇操作05:56程序滿足了本次試驗(yàn)的目的和任務(wù)要求,可以進(jìn)行人機(jī)交互,在后來的程序中將會(huì)做些改

40、進(jìn),以增 強(qiáng)人機(jī)交互性。7. 木程序存在較多不足,如有問題,參考用戶手冊(cè)。8. 在程序語句中,原本使用了人量的生僻的函數(shù)名,經(jīng)過改進(jìn),目前使用都是通俗易懂的函數(shù)名稱, 方便用戶理解。五.用戶手冊(cè)(xx)1鏈隊(duì)列(1) 本程序的運(yùn)行環(huán)境為dos操作系統(tǒng),執(zhí)行文件名為:j. exe.(2) 進(jìn)入演示程序后即顯示文木方式的用戶界面,輸入元素1,2,3, 4,5創(chuàng)建隊(duì)列。42th的亓-1 2 3 4 5 ,都析元元元元元 芫立列l(wèi)z2-3 9 obfls xaaaaa 劃厶聖冃主冃主冃主冃青青112 3 4 5歡迎來到慣對(duì)列l(wèi)i ky 列列素隊(duì) <03隊(duì)一崔賣岀請(qǐng)選擇操作< 05 >

41、: 2(3) 根據(jù)捉示,選擇操作2執(zhí)行元素入隊(duì)操作?;剀? 輸入入隊(duì)元素0,冋車,將0插入到隊(duì)列中。* c:usersad mini strato rdeskto pdebugj.exe連隊(duì)列兀素依次為:1>2->3->4->5->0->歡迎來到櫃對(duì)列5-6-擬長(zhǎng)度毀環(huán)i(4) 選擇操作3執(zhí)行元素出隊(duì)操作,回車,隊(duì)首元素1出隊(duì)。t:usersad m i ni stratordes kto pde bu gj.exe*2->3->4->5->0->歡迎來到槌對(duì)列度長(zhǎng) 列 列隊(duì)隊(duì)3?:素隊(duì) 岀隊(duì)妝 出畫亶賣岀(5)選擇操作1執(zhí)行輸

42、出隊(duì)列長(zhǎng)度操作,回車,*c:usersadministratordesktopdebugj.exe2 - > 3 - > 4 - >5 ->肌元素騙歡迎來到鏈對(duì)列輸出隊(duì)列長(zhǎng)度為5.*c:usersadminstratordesktopdebugj.exec:usersadminjstratordesktopdebug'y.exe連隊(duì)列長(zhǎng)度為汚歡迎來到鏈對(duì)列度長(zhǎng) 列 里賣岀 一一一 一一一12 3 4-569請(qǐng)選擇操作95:(6)選擇操作5執(zhí)行清空隊(duì)列操作,回車,清空。歡迎來到推對(duì)列輸出隊(duì)列長(zhǎng)度10、宀請(qǐng)選1圣操作5汚認(rèn)列已青空press any key to c

43、ont inue(7)選擇操作6執(zhí)行輸出隊(duì)頭元素操作,冋車,輸出元素2。隊(duì)列長(zhǎng)度為巧歡迎來到鏈對(duì)列12 3 4-560ft長(zhǎng) 列 列隊(duì) 犬岀你兀槌 出賣岀請(qǐng)選擇操05:6隊(duì)頭元素為:2歡迎來到鏈對(duì)列q 、列 岀隊(duì)隊(duì)-兀鏈 岀畫a箜頭岀 輸一兀元銷注12 3 4 5 6 0請(qǐng)選擇操作05:2 順序隊(duì)列(1) 創(chuàng)建隊(duì)列,輸入數(shù)據(jù)歡迎來到順序?qū)α锌樟?為點(diǎn)對(duì) 曰賣顯順為據(jù)2 ?j;l:5數(shù) 入入入入入為為列 建芻賽ww 別青青青青青主.=5:1:2:3:4:5 3數(shù)數(shù)數(shù)數(shù) 貝數(shù)m:氣第第氣:112 3 4 5 0空列 為點(diǎn)對(duì) is 曰箕顯順 得出出1,2, 3, 4, 5.(2) 選擇操作1,執(zhí)行入

44、隊(duì)操作.輸入入隊(duì)元素0溝輸入入隊(duì)兀素走隊(duì)列數(shù)據(jù)為:l23450歡迎來到順序?qū)α姓?qǐng)選擇操作05:2(3) 選擇操作2,執(zhí)行出隊(duì)操作。c:usersadministratordeslctopdebugj.exe"走隊(duì)列數(shù)據(jù)為:23450歡迎來到順序?qū)α?2 3 4 5 0空 列 為點(diǎn)對(duì) 曰賣顯順請(qǐng)選擇操作05:2隊(duì)首元素1出隊(duì).f1*c:usersadministratordesktopdebugj.exeh隊(duì)歹|數(shù)扌3 450歡迎來到順序?qū)α锌?列 為點(diǎn)對(duì)不緒示序曰箕顯順 隊(duì)得岀岀12 3 4 5 0請(qǐng)選擇操作05:3(4)選擇操作3,判斷對(duì)是否為空wc:usersadministra

45、tordesktop debugj.exe*歹0不為空丫歡迎來到 頗序 對(duì)歹h空 列 為點(diǎn)對(duì) 得雖 -一-一一(5)選擇操作4,輸出對(duì)頭元索2."c:usersadministratordesktopdebugj.exe0"兀心歡迎來到順序?qū)α行」?列 為占小對(duì)請(qǐng)選圣操作彷一5:5歡迎來到頗序?qū)α锌?列 為點(diǎn)對(duì) oiikfi-順5攵5 12 3 4 5數(shù)數(shù)數(shù)數(shù) 如 列書第第第第:1:5數(shù) 入入入入入為為列 別青青主he青青空 列 為點(diǎn)對(duì) 韋示環(huán) 曰箕顯循>岀屮3、循環(huán)隊(duì)列(1) 創(chuàng)建隊(duì)列,輸入數(shù)據(jù)1,2, 3, 4, 5."c:usersadministra

46、torappdatalocaltemprarsdia0.744debugj.exe*歡迎來到話環(huán)對(duì)歹i(2) 選擇操作1,執(zhí)行入隊(duì)操作輸入入隊(duì)元素o"c:usersadministratorappdatalocaltemprar$dia0.744debugj-exe#此隊(duì)列數(shù)據(jù)為:£23450歡迎來到循環(huán)對(duì)列(3)12 3 4 5 07r-y7r空 列 為點(diǎn)對(duì) 齊§示環(huán) 曰蛋八顯循 嶄得岀岀請(qǐng)選擇操作5-5選擇操作2,執(zhí)行岀隊(duì)操作。隊(duì)首元索1岀隊(duì).引.*c:usersadministratorappdatalocaltemprarsdiaoj44debugj-ex

47、ee歡迎來到循環(huán)對(duì)列12 3 4 5 0pr空 列 為占對(duì) 齊皋示壞 曰箕顯循 得出岀請(qǐng)選擇操作05:3(3)選擇操作3,判斷對(duì)是否為空空 列 為點(diǎn)對(duì) 環(huán)h得岀岀12 3 4 5 0請(qǐng)選擇操作5:4wc:usersadministratorappdatalocaemprarsdiao-744debugjeexe<" '兀x '2歡迎來到循環(huán)對(duì)列12 3 4 5空為點(diǎn)環(huán)ash(6)選擇操作5,顯示隊(duì)列元素為,2, 3, 4, 5, 0測(cè)試結(jié)果(xxx)°c:usersadministratorappdatalocaltemprarsdia0.744deb

48、ugj,exe<隊(duì)列數(shù)據(jù)為:3458歡迎來到循環(huán)對(duì)列12 3 4 5入站取空 列 為點(diǎn)對(duì) 不當(dāng)示壞 曰賣顯循操作"t詢press any key to continue1.順序隊(duì)列的實(shí)現(xiàn)和運(yùn)算1)輸入1即可進(jìn)行進(jìn)入到順序隊(duì)列 ec:usersadmfni5tratordesktopc4 弘、列曲卷4 jqueuedebugqueue.exew2)順序隊(duì)列的建立,輸入元素的個(gè)數(shù)為5,輸入的數(shù)據(jù)分別為1,2,3,4,5,對(duì)頭為1,隊(duì)尾為5,此時(shí)隊(duì)列的數(shù)據(jù)為1 2345咦入入入入入魂列e1n3 vs =33> 入p3 亟笏*査為空*阪爭(zhēng)箕昜心:一二一-輩圭 昜手學(xué) k lifs

49、e 澤 si 霜:n;廠3)輸入2即可進(jìn)行入隊(duì)運(yùn)算,輸入的入隊(duì)元索為0,此時(shí)的隊(duì)列的數(shù)據(jù)為123 4 5 0i t.i= o :、<_> «» r*0、a ti r g * r o r*、oo» lc* o 戸、0 hx» m7 4)輸入3即可進(jìn)行判斷隊(duì)列的是否為空,如下圖:5)輸入4即可進(jìn)行去的對(duì)頭元素的算法,如下圖所示:6) 此時(shí)的隊(duì)列的數(shù)據(jù)為 23450, 如下圖x3為點(diǎn)對(duì)an7)輸入0即可退出順序隊(duì)列,如下圖:8)輸入3即可進(jìn)行順序隊(duì)列的算法,如下圖所示:c:<jsersadmir>istr«tordeslcto

50、pscifi-4 隊(duì)歹撿4 rjxquemexdebugxquue.exe* ec:usersadmin i stratordesktop514 隊(duì)?wèi)躜?yàn)4 b<aqueuedebugqueue.exe *s3§1 2 3-5«2 可atocm-住1ss? 哄入入入入入入為嘯 誓倩iw清倩111£1w選擇垛作9-yx9) 輸入 1 即可進(jìn)行相應(yīng)的入隊(duì)運(yùn)算, *c:usersadministratordesktop4 隊(duì)歹!隊(duì)別jqueuedebugqueue.exe*lf3 ;回如下圖所示i a j青韜入入隊(duì)元素:0比隊(duì)列數(shù)據(jù)為:23450歡迎來到順序?qū)α锌?列 為占小對(duì) s-s 萸顯顱請(qǐng)選擇揮作05 :空 列 為占"對(duì) u 羹顯頗 得岀岀 入軸取聲 一一-一一空 列 為點(diǎn)對(duì) 曰賣顯順 得岀岀 入閱取墾 -一 一一12)輸入4即可進(jìn)行去的頭結(jié)點(diǎn)的運(yùn)算,如下圖所示:i c:usersadministratordesktop4 隊(duì)列實(shí)驗(yàn)4 隊(duì)*jqueuedebugqueue.ex

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論