版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)結(jié)構(gòu)與算法》試驗(yàn)指導(dǎo)書(shū)試驗(yàn)二線形表基本操作的實(shí)現(xiàn)5試驗(yàn)三棧和隊(duì)列基本操作的實(shí)現(xiàn)及應(yīng)用14試驗(yàn)四二叉樹(shù)算法的實(shí)現(xiàn)24試驗(yàn)五圖的算法的實(shí)現(xiàn)36試驗(yàn)六查找算法的實(shí)現(xiàn)52試驗(yàn)七排序算法的實(shí)現(xiàn)62試驗(yàn)一C語(yǔ)言編程復(fù)習(xí)(1)輸入一行字符,計(jì)算該行字符中包含多少個(gè)單詞,單詞之間用空格復(fù)數(shù))cout<<"x1="<<x1.real<<"+imag"<<"x2="<realimagendlcout<<"x1+x2="<<sum.real<sumimagendlif(sum>max)//將某同學(xué)平均成果與目前的最高平均成果進(jìn)行比較選擇高的那個(gè)為最新最高平均成果for(i=0;i<n;i++)//輸出全部同學(xué)成果信息coutThehighestscoreisstudmaxinumst試驗(yàn)二線形表基本操作的實(shí)現(xiàn)一、試驗(yàn)?zāi)康?.熟識(shí)C語(yǔ)言的上機(jī)環(huán)境,進(jìn)一步把握C語(yǔ)言的結(jié)構(gòu)特點(diǎn)。2.把握線性表的挨次存儲(chǔ)結(jié)構(gòu)的定義及C語(yǔ)言實(shí)現(xiàn)。4.把握線性表在挨次存儲(chǔ)結(jié)構(gòu)即挨次表中的各種基本操作。5.把握線性表在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)單鏈表中的各種基本操作。2.采用前面的試驗(yàn)先建立一個(gè)挨次表L={21,23,14,5,56,17,31}typedefstruct2.留意如何取到第i個(gè)元素,在插入過(guò)程中留意溢出狀況以及數(shù)組的下標(biāo)與位序(挨次表中元素的次序)的區(qū)分。typedefintelemtype;typedefstructnode留意結(jié)點(diǎn)的建立方法及構(gòu)造新結(jié)點(diǎn)時(shí)指針的變化。構(gòu)造一個(gè)結(jié)點(diǎn)需用到C語(yǔ)言的標(biāo)準(zhǔn)函數(shù)malloc(),如給指針變量p安排一個(gè)結(jié)點(diǎn)的地址:linklist的結(jié)點(diǎn)的地址空間,并將首地址存入指針變量p中。當(dāng)結(jié)點(diǎn)不需要時(shí)可以用標(biāo)準(zhǔn)函數(shù)free(p)釋放結(jié)點(diǎn)存儲(chǔ)空間,這時(shí)p為空值(NULL)。1.假如按由表尾至表頭的次序輸入數(shù)據(jù)元素,應(yīng)如何建立挨次表。2.在main函數(shù)里假如去掉L=&a語(yǔ)句,會(huì)消失什么結(jié)果?{//插入一個(gè)元素,勝利返回True,失敗返回Falsev.last++;//線性表長(zhǎng)度加一{//刪除一個(gè)元素,勝利返回True,并用ch返回該元素值,失敗返回False{//在線性表中查找ch的位置,勝利返回其位置,失敗返回-1voidprint(sqlistv)//顯示當(dāng)前線性表全部元素for(i=0;i<v.last;i++)printf("elem2.鏈?zhǔn)骄€性表的建立、插入及刪除。#defineLENsizeof(LNode)/LENenumBOOL{False,True};//定義BOOL型typedefstructnodevoidListPrint(LinkList);//顯示單鏈表全部元素charj,ch;print("可以進(jìn)行插入,刪除,定位,查找等操作。\n");intj=0;p=v;intj=0;p=v;intj=0;p=v;試驗(yàn)三棧和隊(duì)列基本操作的實(shí)現(xiàn)及應(yīng)用6.置空挨次棧typedefstructQnodetypedefstructtypedefintStatus;__typedefstruct{if(!S.base)exit(OVERFLOW);//存儲(chǔ)安排失效__printf("[%d:%d]",++i,*p++//用e返回其值,并返回OK;否則返回ERRORscanf("%d",&ch);}typedefintStatus;typedefintQElemType;printf("[%d:%d]",++i,p->data}一、試驗(yàn)?zāi)康?.通過(guò)試驗(yàn),把握二叉樹(shù)的建立與存儲(chǔ)2.通過(guò)試驗(yàn),把握二叉樹(shù)的遍歷方法1.練習(xí)二叉樹(shù)的建立與存儲(chǔ)2.練習(xí)二叉樹(shù)的遍歷1.建立自己的頭文件BT.H,內(nèi)容包括二叉鏈表的結(jié)構(gòu)描述、二叉樹(shù)的建立、二叉樹(shù)的先序、中序與后序遍歷算法。2.建立二叉樹(shù),并通過(guò)調(diào)用函數(shù),,輸出先序遍歷、中序遍歷與后序遍歷建立二叉樹(shù)的代碼如下:intj,i,x;新結(jié)點(diǎn)q*|s[i]=q;/*q新結(jié)點(diǎn)地址存入s指針數(shù)組中*/typedefintStatus;typedefcharTElemType;結(jié)果輸入)樹(shù)printf("a\n");printf("\n");printf("b\n");printf("printf("\n");printf("printf("ef\n");printf("\n");printf("g\n");len=strlen(str);printf("printf("bprintf("printf("printf("printf("efprintf("printf("gpstr=gets(str);p=(BiTree)malloc(sizeofBiTNodep->lchild=p-rchildNULL}}printf("%c(%c)",p->data,childtype[level[top][1for(i=n+1;i<=MaxWidth;i+printftop--;iflchildDisplayBiTreeInBracket樹(shù)試驗(yàn)五圖的算法的實(shí)現(xiàn)假設(shè)以一個(gè)帶權(quán)有向圖表示某一區(qū)域的公交線路網(wǎng),圖中頂點(diǎn)代表一 3.定義求任意兩點(diǎn)最短路徑函數(shù);4.寫(xiě)出主函數(shù)。typedefstructnodetypedefstructtypedefvexnodeGraph[n];inti,j,k;if(A[i][k]+A[k][j]<AtypedefstructArcNodetypedefstructvoidCreateGraph(Graph&);//生成圖的鄰接表廣度優(yōu)先搜尋遍歷圖charj='y;scanf("%d,%d",&Gvexnum,&Garcnum);//輸printf("DFSTraverse:"{//從第i個(gè)頂點(diǎn)動(dòng)身遞歸地深度遍歷圖Gfor(w=FirstAdjVex(Gi)NextAdjVex{//按廣度優(yōu)先非遞歸的遍歷圖G,使用幫助隊(duì)列Q和訪問(wèn)標(biāo)志數(shù)組visitedprintf("BFSTreverse:"{DeQueue(Q,u);//將隊(duì)頭元素出隊(duì)列并置為ufor(w=FirstAdjVex(G,NextAdjVexGuif(!visited[w])//對(duì)u的尚未訪問(wèn)的鄰接頂點(diǎn)w進(jìn)行訪問(wèn)并入隊(duì)列{//在圖G中查找第v個(gè)頂點(diǎn)的第一個(gè)鄰接頂點(diǎn)elsereturnAdjListadj{//在圖G中查找第v個(gè)頂點(diǎn)的相對(duì)于u的下一個(gè)鄰接頂點(diǎn)ifrearMAXQSIZEfrontreturnFaltypedefstructcharj='y;printf("然后輸入各弧和權(quán)值.\n格式:弧尾,弧頭,權(quán)值;例值voidShortestPathDiJGr{1/用迪杰斯特拉算法求有向網(wǎng)G的v0頂點(diǎn)到其余頂點(diǎn)v的最短路徑P[v]及其帶權(quán)路徑長(zhǎng)度D[v]//開(kāi)頭主循環(huán),每次求得v0到某個(gè)頂點(diǎn)v的最短路徑,并加v到S集for(i=1;i<=Gvexnum;i++)Gvexnum//查找當(dāng)前離v0最近的頂點(diǎn)v路徑,退出主循環(huán)for(w=1;w<=Gvexnum;w++)//更新當(dāng)前最短路徑及距離if(!final[w]&&(min+G.arcs[v][for(j=0;P[v][j]!=0:j++)P[w]voidPrintShortestPathGr{1/顯示從頂點(diǎn)u到其余頂點(diǎn)的最短路徑及距離printf("%d->",P[v][j])typedefstructNUM]);NUM]);voidPrintOnePathintintintBOOLMAXNUMMAXNUMcharj='y;離\n1,2,4\n2,1,6\n1,3,11\n3,1,3\n2,3,2\n"scanf("%d,%d",&Gvexnum,&Garcnum);//輸入圖的值voidShortestPathFloydGraphfor(u=1;u<=Gvexnum;u++Falseif(P[v][u][i]||P[u][w][i]TruevoidPrintShortestPathGraphG{//顯示每對(duì)頂點(diǎn)之間的最短路徑及距離if(D[v][w]<INFINITY)//頂點(diǎn)v和w之間有通路P[][MAXNUM][MAXNUM])if(i!=v&&i!=w&&P[v]Truebreak}試驗(yàn)六查找算法的實(shí)現(xiàn)3.用其它查找算法進(jìn)行排序(課后自己做)。typedefstructnode五、思索與提高1.用其它的查找方法完成該算法。2.比較各種算法的時(shí)間及空間簡(jiǎn)單度。#defineMAX30//定義有序查找表的最大長(zhǎng)度typedefstruct{charj;return0;//找不到時(shí),i為0typedefstructBiTNode{chardata;//為了便利,數(shù)據(jù)域只有關(guān)鍵字一項(xiàng)//在二叉排序樹(shù)中刪除元素//中序遍歷二叉排序樹(shù),即從小到大顯示printf("2.search\n")printf("3.insert\n")printf("4.delete\n")caseprintfInputthekeywortemp=InsertBSTkeywordcaseprintfInputthekeydefault:j='n';printfTheprogramisovernPressany{//以中序方式遍歷二叉排序樹(shù)T,即從小到大顯示二叉排序樹(shù)的全部元素printf("%2c",T->data{//在根指針T所指二叉排序樹(shù)中遞歸的查找其關(guān)鍵字等于key的元素,若查找勝利//則指針p指向該數(shù)據(jù)元素,并返回True,否則指針指向查找路徑上訪問(wèn)的最終一11個(gè)結(jié)點(diǎn)并返回False,指針f指向T的雙親,其初始調(diào)用值為NULL找{1/當(dāng)二叉排序樹(shù)T中不存在元素e時(shí),插入e并返回True,否則返回False除}一、試驗(yàn)?zāi)康?.把握常用的排序方法,并把握用高級(jí)語(yǔ)言實(shí)現(xiàn)排序算法的方法;2.深刻理解排序的定義和各種排序方法的特點(diǎn),并能加以敏捷應(yīng)用;3.了解各種方法的排序過(guò)程及其時(shí)間簡(jiǎn)單度的分析方法。統(tǒng)計(jì)成果給出n個(gè)同學(xué)的考試成果表,每條信息由姓名和分?jǐn)?shù)組成,試設(shè)計(jì)一個(gè)(1)按分?jǐn)?shù)凹凸次序,打印出每個(gè)同學(xué)在考試中獲得的名次,分?jǐn)?shù)相(2)按名次列出每個(gè)同學(xué)的姓名與分?jǐn)?shù)。3.定出主程序,對(duì)數(shù)據(jù)進(jìn)行排序。for(j=i+1;j<n;j++)}1.快速排序算法解決本問(wèn)題。2.較各種排序算法的優(yōu)缺點(diǎn)及。3.使用其它排序算法實(shí)現(xiàn)該問(wèn)題(直接插入排序、希爾排序、簡(jiǎn)潔選擇排序、堆排序等)。1.直接插入排序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物流園區(qū)建設(shè)與運(yùn)營(yíng)管理合同
- 二零二五年度出口退稅證明開(kāi)具與國(guó)際物流配送服務(wù)合同3篇
- 2024物業(yè)租賃合同協(xié)議范本
- 2024網(wǎng)絡(luò)游戲代理運(yùn)營(yíng)合同
- 2025年度新型材料研發(fā)中心廠房租賃協(xié)議范本4篇
- 2025廠區(qū)食堂承包合同樣本:營(yíng)養(yǎng)健康食譜定制版3篇
- 2025年度智慧園區(qū)場(chǎng)地服務(wù)合同范本7篇
- 2024年03月中國(guó)銀行股份有限公司2024年春季招考筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度文化產(chǎn)業(yè)園場(chǎng)地承包經(jīng)營(yíng)合作協(xié)議范本4篇
- 2025年度產(chǎn)業(yè)園區(qū)企業(yè)服務(wù)中心租賃合同4篇
- 2023光明小升初(語(yǔ)文)試卷
- 三年級(jí)上冊(cè)科學(xué)說(shuō)課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計(jì)原則、計(jì)算和檢驗(yàn)
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(jí)(一級(jí))教師職稱(chēng)考試試題(有答案)
- 申請(qǐng)使用物業(yè)專(zhuān)項(xiàng)維修資金征求業(yè)主意見(jiàn)表
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計(jì)思路與教學(xué)建議
- 應(yīng)急柜檢查表
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 酒店市場(chǎng)營(yíng)銷(xiāo)教案
評(píng)論
0/150
提交評(píng)論