二叉樹是數據結構中的重點內容,在這兩年的考試中也將二叉樹作為重點內容來考查。二叉樹這部分內容要求大家掌握二叉樹的定義、性質、存儲結構、遍歷、線索化、森林和二叉樹的轉換等內容。算法的重點是二叉樹的遍歷及其應用,這也是二叉樹這部分的重點和難點。遍歷是二叉樹各種操作的基礎,可以在遍歷過程中對結點進行各種操作。例如:求二叉樹結點總數,建立二叉樹,建立二叉樹的存儲結構等。二叉樹的很多算法是在遍歷算法基礎上改造完成的,這就要求大家在復習時,熟練掌握二叉樹遍歷的遞歸和非遞歸算法。
下面,介紹一下二叉樹的幾種遍歷方法:
由二叉樹的定義可知,一顆二叉樹由根節點及左、右子樹三個基本部分組成,因此,只要依次遍歷這三部分,就可以遍歷整個二叉樹。
1.先序遍歷
先序遍歷的遞歸過程為:若二叉樹為空,遍歷結束。否則,
(1)訪問根節點;
(2)先序遍歷根節點的左子樹;
(3)先序遍歷根節點的右子樹。
2.中序遍歷
中序遍歷的遞歸過程為:若二叉樹為空,遍歷結束。否則,
(1)中序遍歷根節點的左子樹;
(2)訪問根節點;
(3)中序遍歷根節點的右子樹。
3.后序遍歷
后序遍歷的遞歸過程為:若二叉樹為空,遍歷結束。否則,
(1)后序遍歷根節點的左子樹;
(2)后序遍歷根節點的右子樹;
(3)訪問根節點。