二叉樹層次遍歷圖解 花一晚上也無法理解二叉樹的非遞歸遍歷,我該繼續(xù)學(xué)下去嗎?
花一晚上也無法理解二叉樹的非遞歸遍歷,我該繼續(xù)學(xué)下去嗎?正常的,多花些時(shí)間是必要的。你先要懂得棧的操作及意義,你還要明白二叉樹遍歷的思想。有人通過對(duì)結(jié)點(diǎn)染色來寫非遞歸算法,即用黑灰白三種顏色代表結(jié)點(diǎn)的
花一晚上也無法理解二叉樹的非遞歸遍歷,我該繼續(xù)學(xué)下去嗎?
正常的,多花些時(shí)間是必要的。你先要懂得棧的操作及意義,你還要明白二叉樹遍歷的思想。有人通過對(duì)結(jié)點(diǎn)染色來寫非遞歸算法,即用黑灰白三種顏色代表結(jié)點(diǎn)的狀態(tài),未被訪問的結(jié)點(diǎn)為白色,進(jìn)棧暫時(shí)不訪問的為灰色,訪問過為黑色。對(duì)于中序遍歷,要訪問當(dāng)前結(jié)點(diǎn)除非左子樹訪問完,所以會(huì)沿左子樹循環(huán)依次進(jìn)找,到葉子后訪問,然右出棧一個(gè)元素,對(duì)右子樹實(shí)施相應(yīng)操作,直到棧為空。