二叉樹三種遍歷方法的遞迴與非遞迴實現

2021-08-10 02:25:58 字數 667 閱讀 6926

二叉樹的三種遞迴方法:前序、中序和後序。

前序遍歷:先根節點,再左孩子,最後右孩子。

遞迴實現:

//前序遞迴

void preorderrecusively(binarytree *root)

非遞迴實現:

//前序非遞迴

void preordernorecusively(binarytree *root)

}

中序遍歷:先左孩子,再根節點,最後右孩子

遞迴實現:

//中序遞迴

void inorderrecusively(binarytree *root)

非遞迴實現:

//中序非遞迴

void inordernorecusively(binarytree *root)else

}}

後序遍歷: 先左孩子,再右孩子,最後根節點

遞迴實現:

//後序遞迴

void postrecusively(binarytree *root)

while(!s.empty())

}}}

二叉樹的三種非遞迴遍歷方法

frontsearch函式用於前序遍歷二叉樹。void frontsearch binarytree root 在將子節點進行入棧時,由於要先遍歷左節點,後遍歷右節點,所以要先將右節點入棧,再將做節點入棧。middlesearch函式用於中序遍歷二叉樹。void middlesearch binar...

二叉樹的三種遍歷方式,含demo(遞迴與非遞迴)

什麼是二叉樹 乙個遞迴的樹形資料結構,每個節點最多有兩個子節點 二叉樹一般都是二分查詢樹,每個節點的值大於它左子節點的值,小於它右子節點的值 遞迴遍歷 前序遍歷 先訪問根節點,再訪問左子節點,最後訪問右子節點 上圖中前序遍歷結果 30 20 5 28 50 38 58 中序遍歷 先訪問左子節點,再訪...

二叉樹的三種非遞迴遍歷

一.前序遍歷 前序遍歷按照 根結點 左孩子 右孩子 的順序進行訪問。1.遞迴實現 void preorder1 bintree root 遞迴前序遍歷 2.非遞迴實現 根據前序遍歷訪問的順序,優先訪問根結點,然後再分別訪問左孩子和右孩子。即對於任一結點,其可看做是根結點,因此可以直接訪問,訪問完之後...