python二叉樹的四種遍歷分別是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
滄州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
數(shù)據(jù)結(jié)構(gòu)是怎么遍歷的呢,二叉樹的遍歷都是從根節(jié)點(diǎn)出發(fā),按照某種次序進(jìn)行整棵樹的遍歷,根據(jù)次序區(qū)分為四種方式,分別是前序,中序,后序,層序。關(guān)于這幾種排序有個(gè)流傳很久的口訣:
前序遍歷:根結(jié)點(diǎn) ---> 左子樹 ---> 右子樹
中序遍歷:左子樹---> 根結(jié)點(diǎn) ---> 右子樹
后序遍歷:左子樹 ---> 右子樹 ---> 根結(jié)點(diǎn)
層次遍歷:僅僅需按層次遍歷就可以
下面,我們就來講解一下這些口訣:
我們先畫一顆簡單的二叉樹

以上述二叉樹進(jìn)行講解:
前序
前序遍歷口訣是:根結(jié)點(diǎn) ---> 左子樹 ---> 右子樹。意思是先遍歷根節(jié)點(diǎn)A,然后是左子樹B,但是B也有左子樹,此時(shí)把B再當(dāng)成根,下一步應(yīng)該是根B的左子樹C-右子樹D。由于C節(jié)點(diǎn)跟D節(jié)點(diǎn)自身就是葉子節(jié)點(diǎn),他們沒有子節(jié)點(diǎn),此時(shí),根節(jié)點(diǎn)A的整個(gè)左子樹B全部子孫節(jié)點(diǎn)已經(jīng)遍歷完畢,接下來,我們?cè)賮肀闅v根節(jié)點(diǎn)A的右子樹E,再將E當(dāng)成根節(jié)點(diǎn),根E沒有左節(jié)點(diǎn),只有右節(jié)點(diǎn)F,此時(shí),整棵樹遍歷完畢,最后的遍歷順序?yàn)锳-B-C-D-E-F。
中序
中序遍歷口訣是:左子樹---> 根結(jié)點(diǎn) ---> 右子樹。中序的邏輯有些奇怪,他是從整棵樹的最左葉子節(jié)點(diǎn)開始,也就是上圖的C節(jié)點(diǎn),找到C節(jié)點(diǎn)的根節(jié)點(diǎn),也就是B節(jié)點(diǎn),然后再找到B節(jié)點(diǎn)的右節(jié)點(diǎn)D節(jié)點(diǎn),此時(shí)根節(jié)點(diǎn)A的整顆左子樹已經(jīng)遍歷完畢,根據(jù)上述口訣,再遍歷根節(jié)點(diǎn)A,根節(jié)點(diǎn)A有一顆右子樹節(jié)點(diǎn)E,此時(shí),如果E有左子樹應(yīng)該先遍歷E的左子樹,從E的最左葉子節(jié)點(diǎn)開始,但是E此時(shí)沒有左子樹,那么我們接下來應(yīng)該遍歷根節(jié)點(diǎn)E,E下面有一個(gè)右葉子節(jié)點(diǎn)F,最后遍歷F,至此,整個(gè)數(shù)據(jù)結(jié)構(gòu)遍歷完成,遍歷順序?yàn)镃-B-D-A-E-F。
后序
后序遍歷口訣是:
左子樹 ---> 右子樹 ---> 根結(jié)點(diǎn)。
意思就是最后 遍歷根節(jié)點(diǎn)A,其實(shí)根據(jù)上面中序的遍歷方式,我們應(yīng)該就已經(jīng)可以得出結(jié)論了,先從最左葉子節(jié)點(diǎn)C開始,左葉子節(jié)點(diǎn)C-C的根節(jié)點(diǎn)B-B的右節(jié)點(diǎn)D,下一步我們來進(jìn)行整棵樹右子樹遍歷,從左葉子節(jié)點(diǎn)開始,沒有左葉子節(jié)點(diǎn),那么就是右葉子節(jié)點(diǎn)F,F(xiàn)的根節(jié)點(diǎn)是E,最后遍歷整棵樹的根節(jié)點(diǎn)A,遍歷順序?yàn)镃-B-D-F-E-A。
層序
層序遍歷,顧名思義,也就是一層層遍歷,根據(jù)從左至右,從上至下的順序進(jìn)行。遍歷順序?yàn)锳-B-E-C-D-F。
關(guān)于python二叉樹的四種遍歷分別是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
網(wǎng)站標(biāo)題:python二叉樹的四種遍歷分別是什么
當(dāng)前網(wǎng)址:http://chinadenli.net/article36/ppsosg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、ChatGPT、做網(wǎng)站、用戶體驗(yàn)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)