二叉樹的遍歷演算法
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的所在子樹...