數(shù)據(jù)結(jié)構(gòu)圖的實(shí)際應(yīng)用 數(shù)據(jù)結(jié)構(gòu)問(wèn)題,什么是有向圖和無(wú)向圖?
數(shù)據(jù)結(jié)構(gòu)問(wèn)題,什么是有向圖和無(wú)向圖?有向圖的邊有一個(gè)方向,由指示方向的箭頭表示。節(jié)點(diǎn)只能單向通信或傳遞消息,這相當(dāng)于單向街道。無(wú)向圖的邊沒(méi)有方向,是雙向的。由一條邊連接的兩個(gè)節(jié)點(diǎn)可以雙向通信,這類(lèi)似于
數(shù)據(jù)結(jié)構(gòu)問(wèn)題,什么是有向圖和無(wú)向圖?
有向圖的邊有一個(gè)方向,由指示方向的箭頭表示。節(jié)點(diǎn)只能單向通信或傳遞消息,這相當(dāng)于單向街道。無(wú)向圖的邊沒(méi)有方向,是雙向的。由一條邊連接的兩個(gè)節(jié)點(diǎn)可以雙向通信,這類(lèi)似于雙向街道
~]//在鄰接表中存儲(chǔ)的無(wú)向圖G中,刪除邊(I,J)void Deletedge(adjlist G,int I,J){//刪除邊(I,J)P=G[I]。Firstarc pre=null//刪除頂點(diǎn)I的邊節(jié)點(diǎn)(I,J)。pre是前導(dǎo)指針,而(P)if(P->adjvex==J){if(pre==null)g[I]。Firstarc=P->next else pre->next free(P)//釋放節(jié)點(diǎn)空間}else{pre=P,P=P->next//沿列表繼續(xù)搜索}//刪除頂點(diǎn)J Firstacc pre=null while(P)if(P->adjvex==I){if(pre==null)g[J]。Firstacc=P->next else pre->next=P->next free(P)//釋放節(jié)點(diǎn)空間}else{pre=P P->next//繼續(xù)沿鏈表查找}}//deletedge
0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 001 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01從頂點(diǎn)1通過(guò)深度優(yōu)先搜索獲得的頂點(diǎn)序列1,2,7,6,4,5,3,以及從頂點(diǎn)1通過(guò)寬度優(yōu)先搜索獲得的頂點(diǎn)序列1,2,3,4,5,7,6