




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據結構實驗報告實驗四圖的應用一、實驗題目:圖的應用一一xx優先/xx優先搜索遍歷二、實驗內容:很多涉及圖上操作的算法都是以圖的遍歷操作為根底的.試編寫一個算法,實現圖的深度優先和廣度優先搜索遍歷操作.要求:以鄰接矩陣或鄰接表為存儲結構,以用戶指定的頂點為起始點,實現連通無向圖的深度優先及廣度優先搜索遍歷,并輸出遍歷的結點序列.注:學號為奇數的同學使用鄰接矩陣存儲結構實現,學號為偶數的同學使用鄰接矩陣實現提示:首先,根據用戶輸入的頂點總數和邊數,構造無向圖,然后以用戶輸入的頂點為起始點,進行深度優先、廣度優先搜索遍歷,并輸出遍歷的結果.三、程序源代碼:#include#include#defi
2、neMAX_VERTEX_NUM20#defineOVERFLOW-1intvisited80;typedefstructArcNodeintadjvex;/該弧所指向的頂點的位置structArcNode*nextarc;/指向下一條弧的指針ArcNode;typedefstructVNodeintdata;/頂點信息ArcNode*firstarc;/指向第一條依附該頂點的弧的指針VNode,AdjListMAX_VERTEX_NUM;typedefstructAdjListvertices;ALGraph;typedefstructQNodeintdata;structQNode*nex
3、t;QNode,*QuePtr;typedefstructQuePtrfront;/隊頭指針QuePtrrear;/隊尾指針LinkQue;voidInitQue(LinkQue&q)voidEnQue(LinkQue&q,inte)intDeQue(LinkQue&q)inte;假設隊列不空,那么刪除q的隊頭元素,用e返回其值,并返回OK;否那么返回ERROR構造一個空隊列qq.front=q.rear=(QuePtr)malloc(sizeof(QNode);if(!q.front)exit(OVERFLOW);q.front-next=NULL;/插入元素e為q的
4、新的隊尾元素QuePtrp;p=(QuePtr)malloc(sizeof(QNode);if(!p)exit(OVERFLOW);/存儲分酉已失敗p-data=e;p-next=NULL;q.rear-next=p;q.rear=p;if(q.front=q.rear)returnfalse;QuePtrp;p=q.front-next;e=p-data;q.front-next=p-next;if(q.rear=p)q.rear=q.front;free(p);returne;boolQueEmpty(LinkQue&q)假設隊列q為空隊列,貝U返回TRUE否貝U返回FLASEin
5、tLocateVex(ALGraphG,intv)用鄰接表構造無向圖voidCreateDG(ALGraph&G)inti,j,k;printf(輸入圖的頂點數和弧度:n);if(q.front=q.rear)returntrue;elsereturnfalse;inti;for(i=0;iG.vexnum;i+)if(G.verticesi.data=v)returni;printf(輸入頂點信息:n);for(i=0;iadjvex=j;s-nextarc=G.verticesi.firstarc;G.verticesi.firstarc=s;structArcNode*t;t=(
6、ArcNode*)malloc(sizeof(ArcNode);t-adjvex=i;t-nextarc=G.verticesj.firstarc;G.verticesj.firstarc=t;voidDFSAL(ALGraphG,intv0)visitedv0=1;printf(%5d,G.verticesv0.data);structArcNode*p;/深度優先搜索遍歷voidDFSTraverse(ALGraphG)/xx優先搜索遍歷voidBFSTraverse(ALGraphG,LinkQueq)intu,w;structArcNode*p;for(u=0;uG.vexnum;u+
7、)visitedu=0;/訪問標志數組初始化InitQue(q);for(u=0;unextarc)w=p-adjvex;if(!visitedw)DFSAL(G,w);intv0;for(v0=0;v0G.vexnum;v0+)visitedv0=0;/訪問標志數組初始化/直到圖中所有頂點都被訪問到為止for(v0=0;v0adjvex;if(!visitedw)/ifp=p-nextarc;visitedw=1;printf(%5d,G.verticesw.data);EnQue(q,w);/while/while/BFSTraverseintmain()ALGraphG;LinkQueq;CreateDG(G);printf(n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開放性顱腦損傷的護理
- 護理病房管理質量分析
- 陜西面食文化課件
- 腦膜瘤健康宣教
- 幼兒園小班健康小心勿吞食物
- 2025-2030中國跟團游行業發展趨勢與前景分析報告
- 2025-2030中國茄尼醇行業運行形勢及投資風險分析報告
- 護士對失能失智老人護理
- 荔枝皮的功效與作用
- 心力衰竭患者的臨床護理
- 小孩辦身份證的委托書范本
- 2022年小學美術教師進城(選調)招聘考試模擬試題(共五套)
- 貴陽小升初分班全真模擬測A卷
- GB/T 77-2007內六角平端緊定螺釘
- 中華人民共和國安全生產法
- 九年一貫制學校教育教學管理制度匯編
- 《C++語言基礎》全套課件(完整版)
- 鋼筋混凝土框架結構設計講義
- 保溫材料進場質量檢驗表
- DG-TJ 08-2122-2021 保溫裝飾復合板墻體保溫系統應用技術標準
- GB∕T 23937-2020 工業硫氫化鈉
評論
0/150
提交評論