您好,登錄后才能下訂單哦!
python二叉樹的四種遍歷分別是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
數據結構是怎么遍歷的呢,二叉樹的遍歷都是從根節點出發,按照某種次序進行整棵樹的遍歷,根據次序區分為四種方式,分別是前序,中序,后序,層序。關于這幾種排序有個流傳很久的口訣:
前序遍歷:根結點 ---> 左子樹 ---> 右子樹
中序遍歷:左子樹---> 根結點 ---> 右子樹
后序遍歷:左子樹 ---> 右子樹 ---> 根結點
層次遍歷:僅僅需按層次遍歷就可以
下面,我們就來講解一下這些口訣:
我們先畫一顆簡單的二叉樹
以上述二叉樹進行講解:
前序
前序遍歷口訣是:根結點 ---> 左子樹 ---> 右子樹。意思是先遍歷根節點A,然后是左子樹B,但是B也有左子樹,此時把B再當成根,下一步應該是根B的左子樹C-右子樹D。由于C節點跟D節點自身就是葉子節點,他們沒有子節點,此時,根節點A的整個左子樹B全部子孫節點已經遍歷完畢,接下來,我們再來遍歷根節點A的右子樹E,再將E當成根節點,根E沒有左節點,只有右節點F,此時,整棵樹遍歷完畢,最后的遍歷順序為A-B-C-D-E-F。
中序
中序遍歷口訣是:左子樹---> 根結點 ---> 右子樹。中序的邏輯有些奇怪,他是從整棵樹的最左葉子節點開始,也就是上圖的C節點,找到C節點的根節點,也就是B節點,然后再找到B節點的右節點D節點,此時根節點A的整顆左子樹已經遍歷完畢,根據上述口訣,再遍歷根節點A,根節點A有一顆右子樹節點E,此時,如果E有左子樹應該先遍歷E的左子樹,從E的最左葉子節點開始,但是E此時沒有左子樹,那么我們接下來應該遍歷根節點E,E下面有一個右葉子節點F,最后遍歷F,至此,整個數據結構遍歷完成,遍歷順序為C-B-D-A-E-F。
后序
后序遍歷口訣是:
左子樹 ---> 右子樹 ---> 根結點。
意思就是最后 遍歷根節點A,其實根據上面中序的遍歷方式,我們應該就已經可以得出結論了,先從最左葉子節點C開始,左葉子節點C-C的根節點B-B的右節點D,下一步我們來進行整棵樹右子樹遍歷,從左葉子節點開始,沒有左葉子節點,那么就是右葉子節點F,F的根節點是E,最后遍歷整棵樹的根節點A,遍歷順序為C-B-D-F-E-A。
層序
層序遍歷,顧名思義,也就是一層層遍歷,根據從左至右,從上至下的順序進行。遍歷順序為A-B-E-C-D-F。
關于python二叉樹的四種遍歷分別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。