遍歷即將樹的所有結點訪問且僅訪問一次。按照根節點位置的不同分為前序遍歷,中序遍歷,後序遍歷。
前序遍歷:根節點->左子樹->右子樹
中序遍歷:左子樹->根節點->右子樹
後序遍歷:左子樹->右子樹->根節點
用遞迴方法實現三種遍歷還是比較簡單的,也比較好理解。
前序:
void pre_order (btreenode *node)
中序:void mid_order (btreenode *node)
後序:void last_order (btreenode *node)
三種方式列印出來的結果就是三種遍歷的結果。 二叉樹的三種非遞迴遍歷方法
frontsearch函式用於前序遍歷二叉樹。void frontsearch binarytree root 在將子節點進行入棧時,由於要先遍歷左節點,後遍歷右節點,所以要先將右節點入棧,再將做節點入棧。middlesearch函式用於中序遍歷二叉樹。void middlesearch binar...
二叉樹的三種遍歷方法
定義二叉樹 鏈式儲存 struct binarytreenode 順序儲存 struct binarytreenode 遞迴實現 先序遍歷 int preordertreewalk binarytreenode pnode 中序遍歷 int inordertreewalk binarytreenod...
二叉樹的三種遞迴方法
今天學習了二叉樹的知識學習了三種遍歷二叉樹的方法,雖然不知道後面兩種有什麼卵用,但還是講解一下 第一種 先序遍歷 1 先訪問其節點本身 2 訪問其左邊的子節點 3 再訪問其右邊的子節點。這種遍歷二叉樹的方法其實就是深搜,先訪問左邊一整條線的節點,就相當於搜尋迷宮時朝乙個方向一直走,直到不能走時再換乙...