二叉樹對應(yīng)的森林 采用鄰接表存儲的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?
采用鄰接表存儲的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪問節(jié)點(diǎn),然后訪問其相鄰點(diǎn)。它類似于二叉樹的順序遍歷,首先訪問子樹的根節(jié)點(diǎn),然后訪問子樹的子
采用鄰接表存儲的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?
這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪問節(jié)點(diǎn),然后訪問其相鄰點(diǎn)。它類似于二叉樹的順序遍歷,首先訪問子樹的根節(jié)點(diǎn),然后訪問子樹的子節(jié)點(diǎn)(鄰接點(diǎn))。圖的廣度優(yōu)先遍歷算法類似于二叉樹的層次遍歷。
怎么用一個棧來實(shí)現(xiàn)二叉樹的層次遍歷,也就是廣度優(yōu)?
二叉樹層次結(jié)構(gòu)遍歷應(yīng)使用隊列。隊列有一個頭指針和一個尾指針。頭指針指向當(dāng)前讀取節(jié)點(diǎn),然后找到當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn),并將它們推送到隊列的末尾。然后頭部指針加1,循環(huán)繼續(xù),直到頭部指針和尾部指針重合。其核心思想是BFS廣度優(yōu)先搜索。