版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗三隊列實驗報告 計算機科學(xué)與技術(shù)系 實 驗 報 告 專業(yè)名稱 計算機科學(xué)與技術(shù) 課程名稱 數(shù)據(jù)結(jié)構(gòu)與算法 工程名稱 實驗三隊列實驗 班 級 學(xué) 號 1 姓 名 同組人員 無 實驗日期 實驗三 隊列實驗 實驗題目: 建立含有假設(shè)干個元素的循環(huán)隊列和鏈隊列,并分別實現(xiàn)循環(huán)隊列和鏈隊列的入隊和出對操作。 (1 1 ) 先實現(xiàn)循環(huán)隊列的入隊和出隊操作 1 1 。問題分析 本程序要求實現(xiàn)建立含有假設(shè)干個元素的循環(huán)隊列,并實現(xiàn)循環(huán)隊列的入隊和出隊操作. 完成該實驗需要以下 4 個子任務(wù): oac( ,1)定義一個循環(huán)隊列的存儲結(jié)構(gòu),定義隊列的根本算法。 定義一個 dly()函數(shù)實現(xiàn)隊列元素的輸出看入隊
2、是否成功 錯誤! ! 通過隊列的根本算法實現(xiàn)隊列的出隊操作 錯誤! ! 在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計如下: 1 2 4 5 2 2 。 概要設(shè)計 為了實現(xiàn)上述程序功能,需要: 錯誤! ! 聲明一個循環(huán)隊列 錯誤! ! 定義出隊列的根本算法, 錯誤! ! 通過鍵盤輸入 5 個整數(shù),入隊,出隊 錯誤! ! 在主函數(shù)中先往隊列里輸入 5 個元素,然后入隊,輸出,看入隊是否成功,然后出隊,再調(diào)用 display()函數(shù)看是否出隊。 1) 本程序包含個函數(shù): 1 主函數(shù)ai() 2.置空隊:initqueue() 3判對空: queueemty() 判隊滿:qeuefl() 5。入隊:add() 6
3、。出隊:delte() 7。dplay() 各函數(shù)關(guān)系如下: in itqueu ( ( ) q q? u u empty () in ( ( ) qu uefull () da? add () )m m ai ? lete () s s lay() 3 3 、 詳細(xì)設(shè)計 實現(xiàn)概要設(shè)計中定義的所有的數(shù)據(jù)類型,對每個操作給出了算法和代碼,主程序和模塊都需要代碼. (1)循環(huán)隊列 dene men 0 typdef strt ? ? ;nelxam aad tni? ? ? ;tno tni? ;ar tni?qqeue; (2)隊列根本算法 seqee *initquee(eqqueue q)
4、/建立一個空循環(huán)隊列 q=(seueue )maloc(ieof (seqque); ;=tnorf>-q? ;0=raer>q? ;q nrutr? int quefull (eqeue q) /判斷隊列是否為滿 if (q-rn=(-rear)%malen) ? ;1 ruter? le reurn 0; int queueey(sqqueue q) ? /判斷隊列是否為空 )norf=rarq( fi? retur ; ele retun 0; id a (sueue q,int x) /入隊 )q(llfeueq!(i? ? ;nexam%)1+raer-(=raerq?
5、qdataqearx; ;)”luf eeu( ftir esle? vi dlete(sequee *q) /出隊 ))q(ytpmeq?。?fi? ;exam)+torf(=torq? else pritf ("uee epy"); (3)用ispla()函數(shù)輸出循環(huán)隊列元素 vi dsplay(seqeue ) / ? 素元的q列隊環(huán)循出輸? ; tni? )raer=!tnof>q(i? ? ? /循環(huán)隊列非空,輸出隊列元素 ? prinf(輸出循環(huán)隊列元素:"); ? ;trq=i? d? ;nelxam)+i(=? ? ;)iataq,"
6、;(ftnrp? hil(!=q->rer); else rint(”隊列為空!"); ()在主函數(shù)中先往隊列里輸入 5 個元素,輸出,看入隊是否成功,然后出隊,再調(diào)用 diay()函數(shù)看是否出隊. in min() ;q euuqes? ;y,i n? q=ntuu(q); / ? ? 列隊環(huán)循空立建? rntf("請輸入5個元素”); for(i=;i<;i+) / ? ? 素元個5隊入? ;)y&,”(fnacs? ;)y,(da? dspla(); ? ? / ? ? 素元列隊環(huán)循出輸? )i; 6 6 、測試結(jié)果 7 7 、附錄 #includ
7、e ;orf tni? it er; seueue; sequeue *inqe(sqeue *) /建立一個空循環(huán)隊列 q(seqqueu *)mllo(so (eqquee); ;0=norf? ->ar=0; retur q; n ueufll (equeue *q) /判斷隊列是否為滿 )xa)+aer>(=tnrf-q( fi? reurn 1; ls retrn ; in queuempty(seqeue q)/ ? ? 空為否是列隊斷判? )tnor>q=r-( fi? ; nruter? lse retr 0; i dd (seqqueue ,it x) /入
8、隊 ))q(llufueuq!(f? q-ea=(qrea+1)%maxlen; ? ;x=raer-qta-q? else pintf ("queu fl"); vod dlet(seqqeue ) /出隊 )q(yteeuuq?。?? ? ;elam)1+tnrf>(=nrf-? ese pntf (”que emt"); vd ispl(sequue ) ? /輸出循環(huán)隊列 q 的元素 in i; ? )aer-=!norq(fi? ? / 素元列隊出輸,空非列隊環(huán)循? ;)”:素元列隊環(huán)循出輸”(ftirp? ;norf>q=i? do ? ?
9、 i=(i1)maxlen; ? ? printf("d”,q->datai); ;)raerq=!i(ehw? esle? ;)!空為列隊"(ftnirp? it mai() ;* ueqs? int ,y; =iique();/ ? ? ? ? 列隊環(huán)循空立建? ;)”素元個 5 入輸請”(ftr? ? )+i;5 (2 2 ) 實現(xiàn)鏈隊列的入隊和出隊操作 1 1 問題分析 本程序要求實現(xiàn)建立含有假設(shè)干個元素的鏈隊列,并實現(xiàn)鏈隊列入隊和出隊操作。 完成該實驗需要以下 4 個子任務(wù): a( ,)定義一個鏈隊列的存儲結(jié)構(gòu),定義鏈 隊列的根本算法。 2 定義一個 dis
10、ply()函數(shù)實現(xiàn)隊列元素的輸出看入隊是否成功 錯誤! ! 通過隊列的根本算法實現(xiàn)隊列的出隊操作 錯誤! ! 在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計如下: 2 3 4 5 6 2 2 。概要設(shè)計 為了實現(xiàn)上述程序功能,需要:, 聲明一個鏈隊列 錯誤! ! 定義出鏈隊列的根本算法, 3 通過鍵盤輸入個整數(shù),入隊,出隊 , 在主函數(shù)中先往隊列里輸入 5 個元素,然后入隊,輸出,看入隊是否成功,然后出隊,再調(diào)用dispy()函數(shù)看是否出隊。 2) 本程序包含個函數(shù): 1 主函數(shù) min() 2.置空隊:initqueue() 3判對空: qeeempt() 4入隊:a() 5出隊:dele() 6disp
11、ay() 各函數(shù)關(guān)系如下: uqtes? setqu ue( ) q q? u u empty( ) ain () ) dd () eteled? delete () display( ) 4 4 、 詳細(xì)設(shè)計 實現(xiàn)概要設(shè)計中定義的所有的數(shù)據(jù)類型,對每個操作給出了算法和代碼,主程序和模塊都需要代碼。 (1 1 )鏈隊列 #defin xe 10 typd stuc ode int data; sruct node xt; linlis; tyd truct inkli fro,rea; linkue; lnqu ; ( 2) 隊列根本算法 lnkque *seueue() /建立一個空鏈隊列
12、;)uuqknl( fezis(collam) uuqn(=q? q>frnt=(lnkst *)mallc(sizef(likist)); q>fonnextnull; qrer=front; ;q nruer? int qeueempty(linkqueu *q)/ ? 空為否是列隊斷判? if (q-re=qfro) etn 1; ;0 nruter ele? inkue *add (linquee *q,int x) /入隊 linklt p; =(linls )maloc(sizof (linist); p>ata=x;pnx=nul; ;=txe-rar? q&g
13、t;earp; rtrn ; linkqueu dele(linkque q) / 隊出? ; silknil? if (!queueempy(q)) ? ;txen-tnorf-q=p? q>fr=p-nex; ? if(p-n=null)q->raqfront; ;q nrue;)p(erf? ? ele pntf (”qeue empty); (3 3 )用 spla () ) 函數(shù)輸出鏈隊列元素 i isplay(linkqueue *q) /輸出鏈隊列的元素 ; ilknil? p=q>rtnex; f(p!=ul) ;)素元隊鏈出輸”(ftnip? ? )lun=
14、!(eliw? ? ? printf(”%2d”,pda); ? ? p=pxt; ? ;)空為隊鏈n"(tr esle? (4)入 在主函數(shù)中先往隊列里輸入 5 5 個元素,輸出,看入隊是否成功, , 然后出隊,再調(diào)用 d d play ()函數(shù)看是否出隊。 int an() ;0y,i ni? setueu(); ? ? /建立空鏈隊列 dplay(q) ; ? ;)”素元個5入輸請"(ftnip? for(=0;i5;i+) ? ? /入隊個元素 ;)y,%”(fnas? ;),(dda? disa(q); ? ? )+;5i;0i(rof? / ? 隊出素元個5把?
15、 ? ;)q(etled? ? ? ? ? ? ;)q(yalpsid? / ? 功成隊出否是看? ;0 nrer? 、調(diào)試分析 編譯無錯誤 5 5 、用戶使用說明 程序名為las12xe,在 dbu文件夾里面.運行環(huán)境 visual c+ 60。 6 6 、測試結(jié)果 7 7 、附錄 includ stdoh #inclue #dfine mx 1 tedef suc node int ta; ;txen* edon turts?linkist; typedef trct linklit *font,*r; linkqueue; linkquee q; likee setqu() /建立一個空
16、鏈隊列 q=(linkquue *)maoc(sizof (inkque)); ;)tslknil(fozi(ollm)* tsilkl(=tnof>-? ->t-next=nul; ;tnorfq=aer? rrn ; int queueempty(inkquue ) / 空為否是列隊斷判? if (q>rea=q->ft) ;1 nute? ;0 nrue esle? nuu *add (linkueu *,n x) /入隊 ;p tsilknl? p=(inlst *)aloc(sizeof (lnklist)); p-ta=;extull; ;ptxrer>
17、;-q? rear=p; ;q nruer? linkeue delee(linkque *q) ? /出隊 ; tilknil? ))q(tpmeueuq!( fi? ;xe>tnorfq=? ;txenp=txetnorf-q? if(p>netnull)q->rear=front; ;q ruer;)p(f? ;)”ytpme eq”( ftnrp e? void isply(ikque *q) ? /輸出鏈隊列的元素 ;* slkn? p=->front-nxt; if(!=nll) ? ;)素元隊鏈出輸(ftnirp? wile(!=nll) ? ;)ata-
18、p,"d2%”(ftnirp? ? ? ;txnp=p? ? le printf("n 鏈隊為空"); int main() int i,y0; sequue(); ? / ? ? ? 列隊鏈立建? )q(alpsi? ? ;? ? ;)”素元個 5 入輸請 n”(firp? f(i0;i5;+) ? / ? 素元個 5 隊入? ? ;)&,”d”(fnacs? a(q,y); dsl(); ? ? ? ? /)+i;i;0=i(ro? ? ? 隊出素元個 5 把? ? delete(q); ? ? ;)(yapsd? ? / 功成隊出否是看? urn ;
19、 實驗題目 2 2 : 寫出以下程序段的輸出結(jié)果,并通過程序運行來驗證 1. 問題分析 完成該實驗需要以下 4 個子任務(wù): 錯誤! ! 定義一個循環(huán)隊列的存儲結(jié)構(gòu),定義隊列的根本算法. 2 定義一個 print()函數(shù)實現(xiàn)程序 錯誤! ! 通過隊列的根本算法實現(xiàn)隊列的出隊操作 oc( ,4)在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計如下: 2. 概要設(shè)計 為了實現(xiàn)上述程序功能,需要: 錯誤! ! 聲明一個循環(huán)隊列 錯誤! ! 定義出隊列的根本算法, 錯誤! ! 在主函數(shù)調(diào)用rn()函數(shù)看是否出隊。 3) 本程序包含個函數(shù): 主函數(shù) ma() 2。置空隊:nitqueu() 3。判對空: eueepty(
20、) 4。判隊滿:queeful() 5入隊:a() 6。出隊:det() 7.dispay() ethed() 各函數(shù)關(guān)系如下: gethead () ? n n itq ue () ) u u u u ty() m m ai () ? q q? eueful ( ( ) add () )m ma a n n del te() n n () ) 5 5 、 詳細(xì)設(shè)計 實現(xiàn)概要設(shè)計中定義的所有的數(shù)據(jù)類型,對每個操作給出了算法和代碼,主程序和模塊都需要代碼. ()循環(huán)隊列 #deine axlen ypedef ruct ? ;nlxm t rhc? ? ;tnrf ni? ? ? ;raer t
21、ni?seqque; ()隊列根本算法 squu iitqueue(seqqu *q) /建立一個空循環(huán)隊列 ;))euqes( fois(colam) euqqs(=q? frot=0; ;0=r>q? ;q nrute? nt queefl (eqqeue q) 判斷隊列是否為滿 )nelxm%)1+rar-q(=tnofq( fi? ;1 nruter? ;0 nrur le? int ueeempty(squeue *q)/ ? ? 空為否是列隊斷判? f (q-re=q-front) ? ;1 nruer? ele return ; char gethe(equeue q) /
22、取棧頂元素 f(!ueueemt(q) ? ;nlxam)+tnrf>q(tadq nrte? else pintf(quue empty”); void d (queu *q,cha ) /入隊 i(!qufull(q)) ? ;nxam)+raerq(=e>q? ;x=ar-atd>-q? else prinf ("queue l"); o dlet(sqe *q) /出隊 )q(ytpmeeueu!( i? ? q-fron(qrnt+1)male; else prf (”que empty); (3)用it()函數(shù)驗證程序 vid rt(seqeu
23、e q) ? ? ;t,y,x rah? ;"c"=y;"e=x? dd(q,h"); ;)",q(dd? ;),q(dda? xgethead(); ;)q(eeld? ;)x,q(d? =te(q); dlete(q); ad(q,a); )0=)q(ytmeuq( lw? ;)q(dhtg? ;)q(el? ;)y,c%"(ftnip? ? ;)x,"”(ftnirp? (4)在主函數(shù)中調(diào)用 prnt()函數(shù)驗證程序 i in() equeu *q; ;)q(ueuqtin=q? rin(q); ;0 nruter?
24、4 4 、調(diào)試分析 編譯無錯誤 5 5 、用戶使用說明 程序名為 class.,在 debu文件夾里面。運行環(huán)境 visual c+ 6。0。 、測試結(jié)果 7 7 、附錄 #i c c u u e < t t io 。 h> inclu e stdlib 。 h> #d fine maxlen 0 0 typed f truct cha d d ta maxl n; ? nt fr nt ; i i? r r r r ; seqqueue ; seqq eue i i itqueue( q q eue *q ) / 建立一個空循環(huán)隊列 es(=q? q=(se ueu *)
25、a a c(si e e f f (s q q ueue ) ); ? f f t= ; q q >rear=0; r r q q ; i i t q euefull ( seqqueue q q ) / / 判斷隊列是否為滿 ? f (q > > o o t t =( rear 1 1 ) ax e e ) nruter? return ; se return ; int queu em t t (seq ueue q) / ? / 判斷隊列是否為空 fi? if ( >re r= fron ) return 1 ; esle? else et r r 0 0 ; h h r thead ( seqqu u u *q) / / 取棧頂元素 (i i? ( !queueempty(
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級語文下冊 第五單元教學(xué)實錄 新人教版
- 幼兒園小班安全工作計劃15篇
- 小學(xué)高級教師申報述職報告匯編5篇
- 2024-2025學(xué)年新教材高中生物 第四章 生物的變異 第四節(jié) 人類遺傳病是可以檢測和預(yù)防的教學(xué)實錄(2)浙科版必修2
- 湖南省益陽市八年級地理下冊 8.1 自然特征與農(nóng)業(yè)(西北地區(qū))知識梳理型教學(xué)實錄 (新版)湘教版
- 軍訓(xùn)心得體會23篇
- 工作業(yè)績個人總結(jié)2022十篇
- 2024年版3D打印設(shè)備采購合同
- 2024年股權(quán)轉(zhuǎn)讓合同及附屬協(xié)議
- 八年級語文上冊 第五單元 24大道之行也教學(xué)實錄 新人教版
- 基礎(chǔ)化工行業(yè)深度:電解液新型鋰鹽材料之雙氟磺酰亞胺鋰(LiFSI)市場潛力可觀新型鋰鹽LiFSI國產(chǎn)化進程加速
- 年產(chǎn)10000噸一次性自然降解環(huán)保紙漿模塑餐具自動化生產(chǎn)線技改項目環(huán)境影響報告表
- 實戰(zhàn)銷售培訓(xùn)講座(共98頁).ppt
- 測控電路第7章信號細(xì)分與辨向電路
- 外研版(三起)小學(xué)英語四年級上冊教案(全冊)
- 小學(xué)生體育學(xué)習(xí)評價表
- 哈爾濱工業(yè)大學(xué)信紙模版
- 餐飲店應(yīng)聘人員面試測評表
- 踝關(guān)節(jié)扭傷.ppt
- 《合作意向確認(rèn)函》范本
- 三年級數(shù)學(xué)上冊全冊練習(xí)題
評論
0/150
提交評論