二叉樹的前序中序和後序遍歷

2021-10-18 10:32:51 字數 1045 閱讀 2681

根據某種策略,按照一定的次序訪問二叉樹中的每乙個結點,使每個結點被訪問一次且只被訪問一次。這個過程稱為二叉樹的遍歷。

遍歷的結果是二叉樹結點的線性序列。非線性結構線性化。

策略:左孩子結點一定要在右孩子結點之前訪問

若二叉樹為空,則返回;否則,

所得到的線性序列分別稱為先序(根)序列。

先序遍歷序列為:a b d g c e f

若二叉樹為空,則返回;否則,

所得到的線性序列分別稱為中序(根)序列。

中序遍歷序列為: d g b a e c f

若二叉樹為空,則返回;否則,

所得到的線性序列分別稱為後序(根)序列。

後序遍歷序列為: g d b e f c a

從二叉樹的第一層(即根結點)開始,從上至下逐層遍歷,在同一層中,則按從左到右的順序對結點進行訪問。 所得到的線性序列分別稱為層序序列。

層序遍歷序列為: a b c d e f g

//編寫前序遍歷的方法

public

void

preorder()

//遞迴向右子樹前序遍歷if(

this

.right != null)

}//中序遍歷

public

void

infixorder()

//輸出父結點

system.out.

println

(this);

//遞迴向右子樹中序遍歷if(

this

.right != null)

}//後序遍歷

public

void

postorder()

if(this

.right != null)

system.out.

println

(this);

}

二叉樹遍歷(前序,中序,後序

二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...

二叉樹的前序 中序和後序遍歷

今天做到阿里巴巴的一道筆試題,關於二叉樹的遍歷序列的,原題摘錄如下 某二叉樹的先序遍歷是12453,中序遍歷是42513,那麼其後續遍歷是?a 45231 b 42351 c 12345 d 54321 本題答案為a 本題考查的知識點是二叉樹前序 中序 後序遍歷的相互求法,即如果知道兩個的遍歷,如何...

二叉樹的遍歷 前序 中序 後序

include includetypedef struct bintree treenode,b tree b tree root null 函式的宣告 b tree creat tree int n void print1 void preorder b tree pointer 前序遍歷 voi...