數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc

ID:55036037

大?。?59.50 KB

頁(yè)數(shù):18頁(yè)

時(shí)間:2020-04-26

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc_第5頁(yè)
資源描述:

《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告圖的遍歷.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第3小組實(shí)驗(yàn)報(bào)告數(shù)據(jù)結(jié)構(gòu)試驗(yàn)報(bào)告實(shí)驗(yàn)四圖的存儲(chǔ)及應(yīng)用實(shí)驗(yàn)題目:圖的遍歷問(wèn)題專業(yè)班級(jí):計(jì)科系1405班組長(zhǎng):張紀(jì)遠(yuǎn)()組員:周振軍()朱新祥()梁麗蓉()段慧娟()2016年6月1日18第3小組實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)類型__綜合設(shè)計(jì)__實(shí)驗(yàn)室_軟件實(shí)驗(yàn)室三__一、實(shí)驗(yàn)題目圖的存儲(chǔ)及應(yīng)用二、實(shí)驗(yàn)?zāi)康暮鸵?.掌握?qǐng)D的存儲(chǔ)思想及其存儲(chǔ)實(shí)現(xiàn)2.掌握?qǐng)D的深度、廣度優(yōu)先遍歷算法思想及其程序?qū)崿F(xiàn)3.掌握?qǐng)D的常見(jiàn)應(yīng)用算法的思想及其程序?qū)崿F(xiàn)三、需求分析1.問(wèn)題描述使用菜單實(shí)現(xiàn)圖的相關(guān)算法,如鍵盤輸入以下結(jié)點(diǎn)數(shù)據(jù):太原、成都、北京、上海、天津

2、、大連、河北,建立一個(gè)有向圖或無(wú)向圖(自定)的鄰接表并輸出該鄰接表;在圖的鄰接表的基礎(chǔ)上計(jì)算各頂點(diǎn)的度,并輸出;以有向圖的鄰接表為基礎(chǔ)實(shí)現(xiàn)輸出它的拓?fù)渑判蛐蛄?;采用鄰接表存?chǔ)實(shí)現(xiàn)無(wú)向圖的深度優(yōu)先遍歷;采用鄰接表存儲(chǔ)實(shí)現(xiàn)無(wú)向圖的廣度優(yōu)先遍歷;采用鄰接矩陣存儲(chǔ)實(shí)現(xiàn)無(wú)向圖的最小生成樹(shù)的PRIM算法2.設(shè)計(jì)分析調(diào)用菜單項(xiàng),分別調(diào)用相應(yīng)的子函數(shù)。注意頂點(diǎn)存儲(chǔ)地名,使用字符數(shù)組來(lái)實(shí)現(xiàn)。3.結(jié)構(gòu)類型定義typedefcharvextype[10];/*頂點(diǎn)數(shù)據(jù)類型*/typedefintedgetype;/*邊數(shù)據(jù)類型*/typede

3、fstruct{vextypevex[MAXSIZE];edgetypearc[MAXSIZE][MAXSIZE];intvexnum,arcnum;}Mgraph;typedefstructnode{intadjvex;structnode*next}EdgeNode;typedefstructnode{vextypevex;EdgeNode*firstedge;}VexNode;typedefstruct{VexNodeadjvex[MAXSIZE];18第3小組實(shí)驗(yàn)報(bào)告intn,e;}ALGraph;二、概要設(shè)計(jì)為

4、了實(shí)現(xiàn)上述程序功能,代碼如下:#include#include#includetypedefstructnode{//邊表結(jié)點(diǎn)intadj;//邊表結(jié)點(diǎn)數(shù)據(jù)域structnode*next;}node;typedefstructvnode{//頂點(diǎn)表結(jié)點(diǎn)charname[20];node*fnext;}vnode,AList[20];typedefstruct{AListList;//鄰接表intv,e;//頂點(diǎn)樹(shù)和邊數(shù)}*Graph;//建立無(wú)向鄰接表Graph

5、CreatDG(){GraphG;inti,j,k;node*s;G=malloc(20*sizeof(vnode));printf("請(qǐng)輸入圖的頂點(diǎn)數(shù)和邊數(shù)(空格隔開(kāi)):");scanf("%d%d",&G->v,&G->e);//讀入頂點(diǎn)數(shù)和邊數(shù)for(i=0;iv;i++){printf("請(qǐng)輸入圖中第%d元素:",i+1);scanf("%s",G->List[i].name);//讀入頂點(diǎn)信息18第3小組實(shí)驗(yàn)報(bào)告G->List[i].fnext=NULL;//邊表置為空表}for(k=0;ke;

6、k++){printf("請(qǐng)請(qǐng)輸入第%d條邊的兩頂點(diǎn)序號(hào)(空格隔開(kāi)):",k+1);scanf("%d%d",&i,&j);//讀入邊(Vi,Vj)的頂點(diǎn)對(duì)序號(hào);s=(node*)malloc(sizeof(node));//生成邊表結(jié)點(diǎn)s->adj=j;s->next=G->List[i].fnext;G->List[i].fnext=s;//將新結(jié)點(diǎn)*s插入頂點(diǎn)Vi的邊表頭部s=(node*)malloc(sizeof(node));s->adj=i;//鄰接點(diǎn)序號(hào)為is->next=G->List[j].fnext

7、;G->List[j].fnext=s;//將新結(jié)點(diǎn)*s插入頂點(diǎn)Vj的邊表頭部}returnG;}//有向鄰接圖GraphCreatAG(){GraphG;inti,j,k;node*q;G=malloc(20*sizeof(vnode));printf("請(qǐng)輸入圖的頂點(diǎn)數(shù)和邊數(shù)【空格隔開(kāi)】:");scanf("%d%d",&G->v,&G->e);for(i=0;iv;i++){printf("請(qǐng)輸入圖中第%d元素:",i+1);scanf("%s",&G->List[i].name);//讀入頂點(diǎn)信息G->L

8、ist[i].fnext=NULL;}for(k=0;ke;k++){printf("請(qǐng)請(qǐng)輸入第%d邊的兩頂點(diǎn)序號(hào)【空格隔開(kāi)】:",k+1);scanf("%d%d",&i,&j);18第3小組實(shí)驗(yàn)報(bào)告q=(node*)malloc(sizeof(node));//生成新邊表結(jié)點(diǎn)sq->adj=j;//鄰接點(diǎn)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。