關於二叉樹的遍歷

2021-09-30 12:27:19 字數 635 閱讀 6724

1.前序遍歷第乙個一定是根節點

2.後序遍歷最後乙個一定是根節點

3.中序遍歷中根節點左側的一定都是根結點的左子樹,右側的一定都是根節點的右子樹。

所以我們可以通過

前序和中序

或者 中序和後序遍歷的結果來確定樹的結構。比如對於以下

前序結果:abdghceif

中序遍歷結果:gdhbaeicf

前序的第乙個一定是該樹的根節點,對於中序,根節點左側的一定是該樹的左子樹,跟序的右節點一定是該樹的右子樹

,所以到此,我們知道了 左子樹:gdhb ;根:a;右子樹:eicf

再看左子樹,前序遍歷去除第乙個根節點後剩下bdghceif,第乙個節點是左子樹的根節點,即b為gdhb的根節點,從

中序結果gdhb我們可以知道,gdh值左子樹根節點b的左子樹,b的右子樹為空。

前序再去掉b,剩下dghceif,中序左子樹還剩gdh未確定,由前序知d是剩下的左子樹的根節點,由中序值,根節點左側的g為d的左子樹,

根節點d右側的為根節點的右子樹。到此我們確定了該樹的所有左子樹結構。

再看a的右子樹部分,由前序可知c為右子樹的根節點,ei為c的左子樹部分,f為c的右子節點。

再有前序知e為左子樹的根節點,看中序可知i為e的右子節點,到此整棵樹確定完畢。

關於分層遍歷二叉樹

問題 給定一棵二叉樹,要求按分層遍歷二叉樹,即從上到下按層次訪問該二叉樹,每一層要求訪問順序為從左到右。解 首先從根節點出發,依次將每層的節點從左到右壓入乙個陣列,並用乙個游標cur記錄當前訪問的節點,另乙個游標lost指示當前層次的最後乙個節點的下乙個位置,以cur last作為當前層次訪問的結束...

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...