二叉樹演算法

2021-07-30 06:42:37 字數 929 閱讀 1048

二叉樹的遍歷演算法

1.先序遍歷

對每乙個節點將其看作根節點按照根左右的順序進行遍歷。

示例**

void _preordertree(node* root)            //先序遍歷二叉樹

return;}

2.中序遍歷

對每乙個節點將其看作根節點按照左根右的順序進行便利。

示例**

void _inordertree(node* root)              //中序遍歷二叉樹

return ;}

3.後序遍歷

對每乙個節點將其看作根節點按照左右根的順序進行便利。

示例**

void _postordertree(node* root)              //後序遍歷二叉樹

return;}

4.層序便利二叉樹

借助佇列出進規則,先定義乙個空佇列,然後根節點進入佇列便利佇列的第乙個成員即根節點,然後將佇列第乙個元素的左右節點再依次放入佇列,然後彈出對頭成員再迴圈進行之前的操作即可實現層序遍歷。

示例**

void level_order(node* root)                 //分層遍歷二叉樹}

計算二叉樹的深度

size_t _depth(node* root)                      //求二叉樹的深度

else return 0;}

計算二叉樹的節點數

size_t nodesize(node* root)                        //求節點總數

return  0;}

計算二叉樹葉子節點數

size_t leafsize(node* root)                         //葉子節點的數目

else}

二叉樹演算法

include include include define elementtype int node structure constructor typedef struct bt binarytreenode,btroot function declear inorder btroot root...

二叉樹演算法

include include define maxsize 20 define max 20 int count 0 int count1 0 int depth int du1 0 int du2 0 樹的儲存結構 typedef struct nodebinode,bitree 棧的儲存結構 ...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...