非遞歸先序遍歷 采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的先序遍歷,為什么是先序呢?
采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的先序遍歷,為什么是先序呢?這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪(fǎng)問(wèn)節(jié)點(diǎn),然后訪(fǎng)問(wèn)其相鄰點(diǎn)。它類(lèi)似于二叉樹(shù)的順序遍歷,首先訪(fǎng)問(wèn)子樹(shù)的根節(jié)點(diǎn),然后訪(fǎng)問(wèn)子樹(shù)的子
采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的先序遍歷,為什么是先序呢?
這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪(fǎng)問(wèn)節(jié)點(diǎn),然后訪(fǎng)問(wèn)其相鄰點(diǎn)。它類(lèi)似于二叉樹(shù)的順序遍歷,首先訪(fǎng)問(wèn)子樹(shù)的根節(jié)點(diǎn),然后訪(fǎng)問(wèn)子樹(shù)的子節(jié)點(diǎn)(鄰接點(diǎn))。圖的廣度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的層次遍歷。
二叉樹(shù)先序遍歷的非遞歸算法具體實(shí)現(xiàn)?
前序遍歷,先根,然后左,然后右;前序遍歷,先左,然后根,然后右。
前序遍歷序列的第一個(gè)節(jié)點(diǎn)是根節(jié)點(diǎn),表示為a。在前序遍歷序列中,根節(jié)點(diǎn)的左子樹(shù)在a之前,根節(jié)點(diǎn)的右子樹(shù)在a之后。找出前序和中序中的左、右子樹(shù)的子序列,遞歸只能重建二叉樹(shù)的結(jié)構(gòu),也決定了后續(xù)遍歷的順序。
Reference
根據(jù)給定的按序和前序遍歷構(gòu)造樹(shù)-geeks for geeks