1.先序遍歷:按照根節點->左子樹->右子樹的順序訪問二叉樹
先序遍歷:(1)訪問根節點;(2)采用先序遞歸遍歷左子樹;(3)采用先序遞歸遍歷右子樹;
(注:每個節點的分支都遵循上述的訪問順序,體現“遞歸調用”)
先序遍歷結果:A BDFE CGHI
思維過程:(1)先訪問根節點A,
(2)A分為左右兩個子樹,因為是遞歸調用,所以左子樹也遵循“先根節點-再左-再右”的順序,所以訪問B節點,
(3)然后訪問D節點,
(4)訪問F節點的時候有分支,同樣遵循“先根節點-再左--再右”的順序,
(5)訪問E節點,此時左邊的大的子樹已經訪問完畢,
(6)然后遵循最后訪問右子樹的順序,訪問右邊大的子樹,右邊大子樹同樣先訪問根節點C,
(7)訪問左子樹G,
(8)因為G的左子樹沒有,所以接下倆訪問G的右子樹H,
(9)最后訪問C的右子樹I
2.中序遍歷:按照左子樹->根節點->右子樹的順序訪問
中序遍歷:(1)采用中序遍歷左子樹;(2)訪問根節點;(3)采用中序遍歷右子樹
中序遍歷結果:DBEF A GHCI
3.后序遍歷:按照左子樹->右子樹-->根節點的順序訪問
后序遍歷:(1)采用后序遞歸遍歷左子樹;(2)采用后序遞歸遍歷右子樹;(3)訪問根節點;
后序遍歷的結果:DEFB HGIC A
小結:三種方法遍歷過程中經過節點的路線一樣;只是訪問各個節點的時機不同,遞歸算法主要使用堆棧來實現
參考鏈接:https://blog.csdn.net/qq_40772692/article/details/79343914