鍍金池/ 問答/人工智能  數(shù)據(jù)分析&挖掘  網(wǎng)絡(luò)安全/ 深度優(yōu)先遍歷的順序

深度優(yōu)先遍歷的順序

為什么這個(gè)圖的遍歷順序會是:v1,v2,v5,v10,v6,v7,v3,v12,v11,v8,v4,v9?
怎么也搞不明白,簡單圖的深度優(yōu)先看的懂,一到復(fù)雜的就懵圈了
圖片描述

回答
編輯回答
失心人

這得看具體代碼實(shí)現(xiàn)了吧,深度優(yōu)先只規(guī)定了往沉挖,沒規(guī)定同級別的節(jié)點(diǎn)間怎么排序。

2017年12月8日 13:05
編輯回答
練命

首先,不管圖的表示方式是鄰接鏈表還是鄰接矩陣,每個(gè)結(jié)點(diǎn)尋找與之相連的節(jié)點(diǎn)的順序是固定的,看這個(gè)便利順序應(yīng)該是從小到大。
然后就是遍歷過程的原則了:

  1. 遍歷過的結(jié)點(diǎn)標(biāo)記,標(biāo)記過的結(jié)點(diǎn)不會再次遍歷
  2. 當(dāng)沒有結(jié)點(diǎn)可以遍歷時(shí),原路返回直到有其它結(jié)點(diǎn)可以遍歷

接下來我們看看這個(gè)圖,
v1,v2,v5,v10的遍歷應(yīng)該沒問題,這時(shí)候v1,v2,v5,v10都被標(biāo)記了,V10沒有其它結(jié)點(diǎn)相連,所以返回,一直返回到結(jié)點(diǎn)V2,
與V2相連的按照順序有V1,V5,V6,V7,其中V1,V5被標(biāo)記了,所以到V6
與V6相連的按照順序有V2,V7,V11,其中V2被標(biāo)記了,所以到V7
與V7相連的按照順序有V2,V3,V6,V12,其中V2被標(biāo)記了,所以到V3
與V3相連的按照順序有V1,V7,其中V1,V7都被標(biāo)記了,所以返回到V7,
與V7相連的按照順序有V2,V3,V6,V12,其中V2,V3,V6被標(biāo)記了,所以到V12
與V12相連的都被標(biāo)記了,所以返回,一直返回到V6
與V6相連的按照順序有V2,V7,V11,其中V2,V7被標(biāo)記了,所以到V11
與V11相連的按照順序有V6,V8,其中V6被標(biāo)記了,所以到V8
與V8相連的按照順序有V4,V11,所以到V4
與V4相連的按照順序有V1,V8,V9,,其中V1,V8被標(biāo)記了,所以到V9
與V9相連的都被標(biāo)記了,所以返回,發(fā)現(xiàn)所有的結(jié)點(diǎn)都被標(biāo)記了,結(jié)束。

上面加粗的就是便利順序了

2018年1月15日 08:17