二叉樹的先序、中序、後序遍歷【重點】

二叉樹操做:

  一.  已知兩種遍歷序列求原始二叉樹

 

  二.  遍歷:

    1.  先序遍歷(先訪問根節點)

      先訪問根節點ide

      再先序訪問左子樹blog

      再先序訪問右子樹it

 

 

    訪問左子樹步驟:class

      1.  從根節點A開始二叉樹

      2.  訪問A的左子樹(以B爲根節點的樹)遍歷

      3.  訪問B的左子樹(以D爲根節點的樹)im

      4.  訪問D的左子樹,爲空db

      5.  訪問D的右子樹,爲空,D訪問完畢,意味着B的左子樹訪問完了img

      6.  返回到B,訪問B的右子樹,爲空,B訪問完畢,意味着A的左子樹訪問完了di

      7.  返回到A

    即左子樹遍歷爲A-B-D

    訪問右子樹:

      操做與上相同,最後A的右子樹訪問完畢,意味着整棵樹訪問完畢

    最終遍歷結果是:A-B-D-C-E-F-G

 

    2.  中序遍歷(中間訪問根節點

      先遍歷左子樹

      再訪問根節點

      再中序遍歷右子樹

 

 

操做:

1.  從根節點A的左子樹(以B爲根節點)開始

2.  訪問B的左子樹,爲空

3.  訪問根節點B

4.  訪問B的右子樹(以C爲根節點)

5.  訪問C的左子樹(以D爲根節點)

6.  訪問D的左子樹,爲空

7.  訪問根節點D

8.  訪問D的右子樹,爲空,D訪問完畢

9.  返回到C,訪問根節點C

10.  訪問C的右子樹(以E爲根節點)

11.  訪問E的左子樹,爲空

12.  訪問根節點E

13.  訪問E的右子樹,爲空,E訪問完畢

14.  返回到C,C訪問完畢

15.  返回到B,B訪問完畢

16.  返回到A,訪問根節點A

17.  訪問A的右子樹(以F爲根節點)……操做同上

最終結果:B-D-C-E-A-L-F-N-Q-M

 

 

    3.  後序遍歷(最後訪問根節點

先遍歷左子樹

再遍歷右子樹

再訪問根節點

 

 

操做:

1.  先訪問A的左子樹(以B爲根節點)

2.  訪問B的左子樹,爲空;訪問B的右子樹,爲空;訪問根節點B,訪問完畢

3.   返回到A,訪問A的右子樹(以C爲根節點)

4.  訪問C的左子樹(以D爲根節點)

5.  訪問D的左子樹,爲空;訪問D的右子樹,爲空;訪問根節點D,訪問完畢

6.  返回到C,訪問C的右子樹(以E爲根節點)

7.  訪問E的左子樹(以F爲根節點)

8.  訪問F的左子樹(以M爲根節點)

9.  訪問M的左子樹,爲空;訪問M的右子樹,爲空;訪問根節點M,訪問完畢

10.  返回到F;訪問F的右子樹,爲空;訪問根節點F,訪問完畢

11.  返回到E;訪問E的右子樹(以L爲根節點)

12. 訪問L的左子樹,爲空;訪問L的右子樹,爲空;訪問根節點L,訪問完畢

13.  返回到E,訪問根節點E,訪問完畢

14.  返回到C,訪問根節點C,訪問完畢

15.  返回到A,訪問根節點A,訪問完畢

最終結果是:B-D-M-F-L-E-C-A

若是真的不知道作什麼 那就作好眼前的事情吧 你所但願的事情都會慢慢實現...
相關文章
相關標籤/搜索