順序表是順序存儲(chǔ)嗎 采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?
采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪問(wèn)節(jié)點(diǎn),然后訪問(wèn)其相鄰點(diǎn)。它類似于二叉樹的順序遍歷,首先訪問(wèn)子樹的根節(jié)點(diǎn),然后訪問(wèn)子樹的子
采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的先序遍歷,為什么是先序呢?
這是因?yàn)閳D的深度優(yōu)先遍歷算法首先訪問(wèn)節(jié)點(diǎn),然后訪問(wèn)其相鄰點(diǎn)。它類似于二叉樹的順序遍歷,首先訪問(wèn)子樹的根節(jié)點(diǎn),然后訪問(wèn)子樹的子節(jié)點(diǎn)(鄰接點(diǎn))。圖的廣度優(yōu)先遍歷算法類似于二叉樹的層次遍歷。
先序遍歷用線索樹方式存儲(chǔ)的二叉樹需要用到棧么?
因?yàn)檎5暮笮蚓€索很難找到后繼線索,而前序線索很難找到前驅(qū)線索,所以我們只需要解決這個(gè)問(wèn)題。答案是:左邊的一棵樹不需要使用堆棧就可以實(shí)現(xiàn)后序線索樹的后序遍歷。此時(shí),由于所有節(jié)點(diǎn)的右子樹都是空的,所以只存儲(chǔ)后序線索,而后序前體只是節(jié)點(diǎn)的左子樹,右子樹的單叉樹可以實(shí)現(xiàn)前序線索樹。當(dāng)前序遍歷時(shí),不使用堆棧。此時(shí),所有節(jié)點(diǎn)的左子樹都為空,只存儲(chǔ)前序前導(dǎo)的線索,前序后繼節(jié)點(diǎn)為該節(jié)點(diǎn)的右子節(jié)點(diǎn)
如果左子節(jié)點(diǎn)不為空,則轉(zhuǎn)到1;否則,如果堆棧為空,則程序結(jié)束;如果堆棧不為空,則移動(dòng)到右子節(jié)點(diǎn)。5如果右側(cè)子節(jié)點(diǎn)不為空,請(qǐng)轉(zhuǎn)到1。否則,轉(zhuǎn)到4