深度遍歷和廣度遍歷的區(qū)別 樹(shù)的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?
樹(shù)的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?二叉樹(shù)的一階,二階,中間階。深度和廣度是常見(jiàn)的樹(shù)木。深度遍歷:從樹(shù)的根開(kāi)始掃描,從頂層開(kāi)始掃描,從一層最左邊(或最右邊)的節(jié)點(diǎn)掃描到底層,直到下層沒(méi)有節(jié)點(diǎn)
樹(shù)的深度遍歷和先序遍歷是一回事嗎?廣度遍歷呢?
二叉樹(shù)的一階,二階,中間階。深度和廣度是常見(jiàn)的樹(shù)木。深度遍歷:從樹(shù)的根開(kāi)始掃描,從頂層開(kāi)始掃描,從一層最左邊(或最右邊)的節(jié)點(diǎn)掃描到底層,直到下層沒(méi)有節(jié)點(diǎn)為止。此時(shí),將掃描所有最左側(cè)(右側(cè))的節(jié)點(diǎn)。從樹(shù)的頂部后退一步,查看層旁邊是否有兄弟節(jié)點(diǎn)。如果有,從最左邊(右邊)掃描。這是一個(gè)遞歸概念,使用此方法遍歷整個(gè)樹(shù)。寬度遍歷:從樹(shù)的根開(kāi)始掃描,掃描第一層的所有節(jié)點(diǎn),掃描第二層的所有節(jié)點(diǎn),掃描底部節(jié)點(diǎn)。
圖的廣度遍歷和深度遍歷是唯一的么?
如果它們的存儲(chǔ)結(jié)構(gòu)已確定,則它們是唯一的。
因?yàn)樵诖鎯?chǔ)中,第一個(gè)頂點(diǎn)和頂點(diǎn)之間的鄰接順序是人工定義的。如果我們只從邏輯上考慮算法,它們就不是唯一的
你想要代碼嗎?讓我們先用鄰接矩陣來(lái)畫(huà)圖。深度優(yōu)先遍歷使用遞歸。對(duì)于一個(gè)節(jié)點(diǎn),它遞歸地訪問(wèn)它沒(méi)有訪問(wèn)過(guò)的相鄰節(jié)點(diǎn)。就像走在迷宮里。當(dāng)你知道沒(méi)有路可走時(shí),你可以往回走,找到下一個(gè)十字路口。寬度優(yōu)先遍歷使用隊(duì)列。當(dāng)一個(gè)節(jié)點(diǎn)不在隊(duì)列中時(shí),它會(huì)將其未訪問(wèn)的鄰居節(jié)點(diǎn)排隊(duì)。就像嚴(yán)重近視的人一樣,如果掉了眼鏡,他們會(huì)先找到最近的圓,然后再擴(kuò)大一點(diǎn)。每次遍歷都使用VIS數(shù)組標(biāo)記來(lái)確保每個(gè)節(jié)點(diǎn)只被訪問(wèn)一次。