目錄
1>遍歷的方式
2>先序遍歷
3>中序遍歷
4>後序遍歷
5>層次遍歷
按照根的訪問順序的不同,根在前面的稱為先序遍歷 (dlr),根在中間的稱為中序遍歷(ldr),根在最後的稱為後序遍歷(lrd)
d:data代表根結點的資料 l:代表左子樹 r:代表右子樹
步驟:先訪問根節點,然後訪問根結點的左子樹,最後訪問根節點的右子樹
注意:在訪問左子樹和右子樹時,均要先訪問其左子樹(左-->右),同時只有左子樹為空或者已訪問才可以遍歷右子樹
以例題為例如下圖所示
這是乙個 深度為4的二叉樹,如果用先序遍歷去訪問,訪問是如何
1:訪問根節點a
2:訪問左子樹(bde),先訪問左子樹左孩子,其沒有孩子均為空值返回到b,然後方訪問右孩子同理沒有孩子為空值,則左子樹訪問完畢。bde
3:訪問右子樹(cfg),先訪問右子樹的左孩子為空,返回到根結點c,然後訪問其有孩子f其有左孩子g。cfg
訪問順序:a b d e c f g
步驟:先中序遍歷左子樹,然後訪問根結點,最後中序右子樹
注意:在訪問左子樹和右子樹時,均要先訪問其左子樹(左-->右),同時只有左子樹為空或者已訪問才可以訪問根結點
以例題為例如下圖所示
1:左子樹(bde),按照中序遍歷的方式,先訪問左子樹的左孩子d(其左孩子的孩子值為空,則返回到左子樹的根結點b),然後訪問右孩子。dbe
2:在完成對左子樹的遍歷訪問後,訪問根結點a
3:訪問右子樹(cfg),先訪問右子樹的左孩子為空,返回到根結點c,然後訪問其有孩子f其有左孩子g。cfg
即是不論是左子樹還是右子樹只有左孩子全部訪問完才可以放回到左子樹或者右子樹的根結點
訪問順序:d b e a c f g
步驟:先後序遍歷左子樹,然後後序遍歷右子樹,最後訪問根結點
注意:在訪問左子樹和右子樹時,均要先訪問其左子樹(左-->右),同時只有左子樹為空或者已訪問和右子樹為空或者已訪問才可以訪問根結點
以例題為例如下圖所示
1:左子樹(bde),按照後序遍歷的方式,先訪問左子樹的左孩子d(其左孩子的孩子值為空,然後訪問右孩子e)deb
2:訪問右子樹(cfg),先訪問右子樹的左孩子為空,則訪問其右孩子f其有左孩子g。gfc
3:在完成對左子樹和右子樹的遍歷訪問後,訪問根結點a
只有左子樹中的左孩子和右孩子均全部訪問完後,才可以訪問左子樹的根結點,同理右子樹也是一樣,最後訪問根結點a
訪問順序: d e b g f c a
步驟:講二叉樹按照深度逐層分類,從上到下每一層從左到右進行輸出
如下圖:
理論基礎 二叉樹 二叉樹的遍歷
以二叉鍊錶的儲存結構為例 若二叉樹為空,則空操作,否則 先訪問根結點,再先序遍歷左子樹,然後先序遍歷右子樹 void preorder node bt 若二叉樹為空,則空操作,否則 先中序遍歷左子樹,再訪問根結點,然後中序遍歷右子樹 void inorder node bt 若二叉樹為空,則空操作,...
二叉樹遍歷方法
二叉樹簡介 二叉樹是每個節點最多有兩個子樹的樹結構。通常被稱作左子樹 left subtree 和右子樹 right subtree 二叉樹常被用於實現二叉查詢樹二叉堆。二叉樹 深度為k 並且有2 k 1個節點的二叉樹稱為滿二叉樹。這種樹的特點是每一層的節點數都是最大節點數。而且在一棵二叉樹中,除最...
二叉樹的遍歷方法
二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...