鄰接表存儲(chǔ)結(jié)構(gòu) 圖的深度優(yōu)先遍歷非遞歸方法可以用隊(duì)列嗎?
圖的深度優(yōu)先遍歷非遞歸方法可以用隊(duì)列嗎?不,您需要確保在返回時(shí)沿著原始路徑一步一步地返回,只是在后進(jìn)先出模式下。只能使用堆?;蚺c堆棧類(lèi)似的結(jié)構(gòu)。如果使用隊(duì)列,就不會(huì)沿著即將到來(lái)的路徑向后退如果所有節(jié)點(diǎn)
圖的深度優(yōu)先遍歷非遞歸方法可以用隊(duì)列嗎?
不,您需要確保在返回時(shí)沿著原始路徑一步一步地返回,只是在后進(jìn)先出模式下。只能使用堆?;蚺c堆棧類(lèi)似的結(jié)構(gòu)。如果使用隊(duì)列,就不會(huì)沿著即將到來(lái)的路徑向后退
如果所有節(jié)點(diǎn)的左右子樹(shù)都被轉(zhuǎn)換,主要有兩種方式。深度優(yōu)先遍歷,從根到最小子樹(shù)的訪問(wèn)解決問(wèn)題。當(dāng)所有節(jié)點(diǎn)都被訪問(wèn)時(shí),交換就完成了。或者BFS廣度優(yōu)先從根節(jié)點(diǎn)依次交換左右子樹(shù),訪問(wèn)完所有節(jié)點(diǎn)后交換完成。建議使用BFS。邏輯簡(jiǎn)單易懂,實(shí)現(xiàn)簡(jiǎn)單。排隊(duì)感覺(jué)也比堆積如山好。