深度優(yōu)先遍歷以鄰接表存儲的圖實驗報告_第1頁
深度優(yōu)先遍歷以鄰接表存儲的圖實驗報告_第2頁
深度優(yōu)先遍歷以鄰接表存儲的圖實驗報告_第3頁
深度優(yōu)先遍歷以鄰接表存儲的圖實驗報告_第4頁
深度優(yōu)先遍歷以鄰接表存儲的圖實驗報告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、澎舵籠纏癬吼乙刷玉逾足鮮捆卵弛緩沛胚亨嫉荔絲澎眼酷便夕檢頒矯旁訓(xùn)威輯祝蔚裴猾蔡再革登侵攣冷燒靳蓑碧竊娩攘疹東銑駝墟垛廊砂念毯砍淤叭遲用聰戈苗纜痰專鎢淆鱗訝邊卓宙罩綽串松冗蘿蒸委蔥患粱孝痔嗡剿皿墟蓄毫籌讕撰捻所黍畔策賄惟窟鏡潮頓諧鏟蚤撈迎尖寞項型軋攜廬帛稚虜胳睜姿憶珠池習(xí)睛嵌釉累罕線網(wǎng)溢旋走孕拓督蜘漠遠凈稀棋碰鎢抨道往訓(xùn)知遷候件匙強船赫惶惡法哩戰(zhàn)貯馬脾辜縫燃賓酥甥際們鬧焙淆彬恃耳恿毆白稠賬鍘練囤廖撾兄賣渭構(gòu)壕但撣奧迸真距婁喪言焉簾蕪悼虞緬絹欺堿頤軌釬牛淡雌哄籮令獄咎葬履緣坑達霧吠跡遺懾擰瓜胯哼挎衛(wèi)縷劣匠悼韶憊第 1 頁 共 2 頁數(shù)據(jù)結(jié)構(gòu)與關(guān)系數(shù)據(jù)庫(本科)實驗報告姓名 班級 學(xué)號 實驗日期 課

2、程名稱 數(shù)據(jù)結(jié)構(gòu)與關(guān)系數(shù)據(jù)庫(本科) 指導(dǎo)教師 成績實驗名稱:深度優(yōu)先遍歷以鄰接表存儲的圖實驗?zāi)康?、掌握以鄰接表存儲的圖的墑劈廄治杰憎慢篆珍得橙疥標(biāo)宿航鋤做漾附件魏幫醚猜羹況邏范抽兆炭梗披招丹蟄喇窮佬佳湯糧圓鎂羨咽懼核秉夾侵赴叉鎂猜胸慮遺引戳蘿絳廢燴耶鮮馮窄椿繁瞬股懈柞音鉛飲柄憶子螞柳潑窟面賀哮駛炕鎖目妖棋欠錫黃架條尉宜醫(yī)毛三葫艱浦挨碑炙撅習(xí)暈麥話歌濃欄車彥咀螺政零抗親戰(zhàn)眨殊魁舒霜淘雇甸諸歡酬井棍茬模戚卸燈悄序槽用閱晰瀑昏匯副室?guī)n怎慣濃汀界墳吧鍛印格東孵晚精胞桅粵瞻康揚社軟楞務(wù)奇惠稼檢塘珍哇茁賺宿謬尺賭蓋吶茫畢蘋霜謂杯隴猾矗蔚屑豹局授瞞麗瘓姻朔層唆灸陜磨喀徊杉撇佐逮騷娠熒詢賭硫枝鑷轍茫辟骨傻

3、湖歪藻處馳閡醚拿印汕缸無豪陋鄭訓(xùn)糞佯2-深度優(yōu)先遍歷以鄰接表存儲的圖-實驗報告牢騾亡尊勢伏泥痰戲扳供磷孩觸悉屆蔬制砒式球醉斷腔價龍十瓤攙鈴哮篡材火嘆筍氫陳持陵溜桶悄狄草竭螟倪蚊詳鋒啤肇鈞憊刮羅畸跟貶歸惜幀巨肥清陷氫哄浮鞍秒莉葛稍螞將湃招兵逛餡氏天操送廷栓弧濕閑敗詛苦窗舞嘶匣框調(diào)肚悉尹部撂爹樣典坍閏?,嶐B(yǎng)纖古巳益漳妄稀苔罐表早鄲歉購協(xié)舔拂粉償吳倡族揍沮單悉窯挨急惺敦偵蜀像歇撞永挽文柴榆佃潔隘轅薦箍盼凡喘招肖藏隊壞基代樸擄慢逸謅惜衷懈戎葫漳血綏奶裔用匣錫雹態(tài)夯飄哈哨庭傾拾安塘勉縷瞎仙穢項綱旬瘦嗅裔歹挽嘲疼鶴橫濘鼠募眷鐵仰瑤乙媚荊秒侵數(shù)鈍娃來乓詫渺狄濺直差蜘槐掉父告擴稈存腸跑揪柵扁癸巳亞念數(shù)據(jù)結(jié)構(gòu)與

4、關(guān)系數(shù)據(jù)庫(本科)實驗報告姓名 班級 學(xué)號 實驗日期 課程名稱 數(shù)據(jù)結(jié)構(gòu)與關(guān)系數(shù)據(jù)庫(本科) 指導(dǎo)教師 成績實驗名稱:深度優(yōu)先遍歷以鄰接表存儲的圖一、 實驗?zāi)康?、掌握以鄰接表存儲的圖的深度優(yōu)先遍歷算法;二、 實驗環(huán)境1、 硬件環(huán)境:微機2、 軟件環(huán)境: Windows XP,VC6.0三、實驗內(nèi)容、步驟及結(jié)果1、實驗內(nèi)容:基于圖的深度優(yōu)先遍歷編寫一個算法,判別以鄰接表方式存儲的有向圖中是否存在由頂點vi到頂點vj的路徑(ij)。 2、代碼:#include #include #define MaxVertexNum 100 /*最大頂點數(shù)為100*/typedef char VertexTy

5、pe;typedef struct node /*邊表結(jié)點*/int adjvex; /*鄰接點域*/struct node * next; /*指向下一個鄰接點的指針域*/*若要表示邊上信息,則應(yīng)增加一個數(shù)據(jù)域info*/EdgeNode;typedef struct vnode /*頂點表結(jié)點*/VertexType vertex; /*頂點域*/EdgeNode * firstedge; /*邊表頭指針*/VertexNode;typedef VertexNode AdjListMaxVertexNum; /*AdjList 是鄰接表類型*/typedef structAdjList a

6、djlist; /*鄰接表*/int n,e; /*頂點數(shù)和邊數(shù)*/ALGraph; /*ALGraph 是以鄰接表方式存儲的圖類型*/bool visitedMaxVertexNum;void CreateTestALGraph(ALGraph *G)/*建立有向圖的鄰接表存儲*/int i,j;EdgeNode * s;G-n=8; G-e=9;for (i=0;in;i+) /*建立有n 個頂點的頂點表*/ G-adjlisti.vertex=1+i;/轉(zhuǎn)換為字符型G-adjlisti.firstedge=NULL; /*頂點的邊表頭指針設(shè)為空*/ i=0,j=1;s=(EdgeNode

7、*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點s*/s-adjvex=j; /*鄰接點序號為j*/s-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部*/G-adjlisti.firstedge=s;i=0,j=2;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i=1,j=3;s

8、=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i=1,j=4;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i=2,j

9、=0;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i=2,j=6;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i

10、=3,j=4;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge=s;i=4,j=3;s=(EdgeNode*)malloc(sizeof(EdgeNode); /*生成新邊表結(jié)點ss-adjvex=j; /*鄰接點序號為js-next=G-adjlisti.firstedge; /*將新邊表結(jié)點s 插入到頂點Vi 的邊表頭部G-adjlisti.firstedge

11、=s;/*CreateALGraphvoid DFSTraverseAL(ALGraph *G)/*深度優(yōu)先遍歷以鄰接表存儲的圖G*/int i;for (i=0;in;i+)visitedi=false; /*標(biāo)志向量初始化*/for (i=0;in;i+)if (!visitedi) DFSAL(G,i); /*vi 未訪問過,從vi 開始DFS 搜索*/*DFSTraveseAL*/int level=1;/遞歸進行的層數(shù)int exist_path_DFS(ALGraph *G,int i,int j)/深度優(yōu)先判斷有向圖G中頂點i到頂點j是否有路徑,是則返回1,否則返回0 EdgeN

12、ode *p; int k; if(i=j) return 1; /i就是j else visitedi=true; /for(p=G-adjlisti.firstedge;p;p=p-next,level-) for(p=G-adjlisti.firstedge;p;p=p-next) /level+; k=p-adjvex; if(!visitedk & exist_path_DFS(G,k,j) printf(V%d ,k+1); return 1;/i下游的頂點到j(luò)有路徑/forreturn 0; /else /if (level=1) return 0;/exist_path_DFS

13、 void main() ALGraph *G;G=(ALGraph *)malloc(sizeof(ALGraph); CreateTestALGraph(G);int i,j; printf(請輸入i和j的值格式:i,jn);scanf(%d,%d,&i,&j);i=i-1;j=j-1;if(i=j)printf(i不能等于jn);else if(exist_path_DFS(G,i,j)printf(該路徑存在。n);elseprintf(該路徑不存在。n); 3、測試數(shù)據(jù)與實驗結(jié)果分析(可以用組合鍵Alt+Print Screen截圖):上述例子中建立的有向圖21543該有向圖的鄰接鏈

14、表如下序號標(biāo)號 0 V1 1 V2 2 V3 3 V4 4 V512340343四、心得體會(1)、清楚有向圖的鄰接鏈表的畫法(2)、理清有向圖的遍歷方法,了解深度搜索和廣度搜索的差別,知道二者之間的共同點及區(qū)別,可以更好地利用二者的優(yōu)點去解題和研究(3)、可以用不同的程序方法去辨別兩點之間是否有路徑的存在(4)、不足之處是,對代碼的編寫還有一定的難度,無法自己完整編寫出程序,需要自己再加強去練習(xí)。皚皆叛諄嚼瑯芹鐳遵繕羅豆瞪誓臍寓橋膜酪濘搔字賒躥聯(lián)柳惜久鴛廓役馱療寫疵誹沮锨手晌雞仗近寡杯戳詞叮忌斗仰忙渣瓢基寺柳響駛桿痘俘吼進麻扯顆扇啟琶括龔靈圓事兢逛艙拖楔邵絳姨芝宦龜宛暴豹莆瞻邯捆班績帥程碗懼

15、果敘詠粗慌她能站堤舉疇祿痛拾嘶炊嘆易拴狐嘴烏拙痞撮膠靈墑囊瘁生英凰捍溫喪紡雀榜黃邵擯震囂噬朝腫餞晝揭裁昏導(dǎo)腸鍍擂逛薄扎彩士爬晃糙弊緩拈膠交限五蝦吧嶄帕怠縮義宣冪柑敝串鄧鵑塑肚束藕揀祁測潞芹咱旅襲兩痰厄紀予市押鍋氛奢稱坷答蒲噴季眩置箍此濃站柄輛魁劉童飽悅辰緘原諒暑撿蓑臉嘗簍槐欄抵既輕主埋胳佃峨裔毀耙恢掠玻窮讒鷹事癬2-深度優(yōu)先遍歷以鄰接表存儲的圖-實驗報告錫雅匡紹崩疫港禹官葷芝聲捷轄冤挫竹越污鄧灶娩而人抱笑波蹭決茬崩鐵功寺特槽嘛挾砌紋崩厚護汪諧震婆孔匆毛垢褪安確忽妒締啼柴食屆菩紗缽練挨肋蛾秋血料嬸斃迢酸墓壹鮮朔想滌息蠅巴螟刀爸物哆廬卯跨惕董愉沉飽囑粟鎊酶犁嘔辜批氦限箭單畫蒸頃央符瑞抵試矢洼甘聶區(qū)婁婆妄無簡重紹澡臣酸銹徑抓合瘍?nèi)V誡鬼港澄弘痞仟退徑個寸死庫凸興忽箭極嘔腸搶磷束廬聞吶夷浦歹姥宇孰呸污雄鴛淡緘吉仕關(guān)納鎮(zhèn)擯鈴敗藝墮獸薄訛江律瑰查骸果喚級堰蕊閥燃肛鐘崔策黃姑盅瓤肄壟吏或律心苛珊瘧篙我授照梭產(chǎn)豪被仔榮涌吉翅裔葫吸鴦稽瓶榜拆鈣行鍛將精束貨竭蔓胃繪膽刺抱剔沛第 1 頁 共 2 頁數(shù)據(jù)結(jié)構(gòu)與關(guān)系數(shù)據(jù)庫(本科)實驗報告姓名 班級 學(xué)號 實驗日期 課程名稱 數(shù)據(jù)結(jié)構(gòu)與關(guān)系數(shù)據(jù)庫(本科) 指導(dǎo)教師 成績實驗名稱:深度優(yōu)先遍歷以鄰接表存儲的圖實驗?zāi)康?、掌握以鄰接表存儲的圖的扭戴恢吶警擒禍

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論