python二叉樹的四種遍歷分別是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
滄州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)建站。
數(shù)據(jù)結構是怎么遍歷的呢,二叉樹的遍歷都是從根節(jié)點出發(fā),按照某種次序進行整棵樹的遍歷,根據(jù)次序區(qū)分為四種方式,分別是前序,中序,后序,層序。關于這幾種排序有個流傳很久的口訣:
前序遍歷:根結點 ---> 左子樹 ---> 右子樹
中序遍歷:左子樹---> 根結點 ---> 右子樹
后序遍歷:左子樹 ---> 右子樹 ---> 根結點
層次遍歷:僅僅需按層次遍歷就可以
下面,我們就來講解一下這些口訣:
我們先畫一顆簡單的二叉樹
以上述二叉樹進行講解:
前序
前序遍歷口訣是:根結點 ---> 左子樹 ---> 右子樹。意思是先遍歷根節(jié)點A,然后是左子樹B,但是B也有左子樹,此時把B再當成根,下一步應該是根B的左子樹C-右子樹D。由于C節(jié)點跟D節(jié)點自身就是葉子節(jié)點,他們沒有子節(jié)點,此時,根節(jié)點A的整個左子樹B全部子孫節(jié)點已經(jīng)遍歷完畢,接下來,我們再來遍歷根節(jié)點A的右子樹E,再將E當成根節(jié)點,根E沒有左節(jié)點,只有右節(jié)點F,此時,整棵樹遍歷完畢,最后的遍歷順序為A-B-C-D-E-F。
中序
中序遍歷口訣是:左子樹---> 根結點 ---> 右子樹。中序的邏輯有些奇怪,他是從整棵樹的最左葉子節(jié)點開始,也就是上圖的C節(jié)點,找到C節(jié)點的根節(jié)點,也就是B節(jié)點,然后再找到B節(jié)點的右節(jié)點D節(jié)點,此時根節(jié)點A的整顆左子樹已經(jīng)遍歷完畢,根據(jù)上述口訣,再遍歷根節(jié)點A,根節(jié)點A有一顆右子樹節(jié)點E,此時,如果E有左子樹應該先遍歷E的左子樹,從E的最左葉子節(jié)點開始,但是E此時沒有左子樹,那么我們接下來應該遍歷根節(jié)點E,E下面有一個右葉子節(jié)點F,最后遍歷F,至此,整個數(shù)據(jù)結構遍歷完成,遍歷順序為C-B-D-A-E-F。
后序
后序遍歷口訣是:
左子樹 ---> 右子樹 ---> 根結點。
意思就是最后 遍歷根節(jié)點A,其實根據(jù)上面中序的遍歷方式,我們應該就已經(jīng)可以得出結論了,先從最左葉子節(jié)點C開始,左葉子節(jié)點C-C的根節(jié)點B-B的右節(jié)點D,下一步我們來進行整棵樹右子樹遍歷,從左葉子節(jié)點開始,沒有左葉子節(jié)點,那么就是右葉子節(jié)點F,F(xiàn)的根節(jié)點是E,最后遍歷整棵樹的根節(jié)點A,遍歷順序為C-B-D-F-E-A。
層序
層序遍歷,顧名思義,也就是一層層遍歷,根據(jù)從左至右,從上至下的順序進行。遍歷順序為A-B-E-C-D-F。
關于python二叉樹的四種遍歷分別是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。
網(wǎng)站標題:python二叉樹的四種遍歷分別是什么
當前網(wǎng)址:http://chinadenli.net/article36/ppsosg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、營銷型網(wǎng)站建設、ChatGPT、做網(wǎng)站、用戶體驗、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)