#include
#include
int c_node =0;
//節點數
int c_leaf =0;
//葉子數
int depth =0;
//二叉樹高度
typedef char elemtype;
typedef struct node //節點
binode,
*bitree;
//先序建立二叉樹
void
createtree
(binode **root)
else
(*root)
->data = data;
createtree(&
((*root)
->lchild));
createtree(&
((*root)
->rchild));
}}//先序遍歷二叉樹
void
preorder
(binode *root)
}//中序遍歷二叉樹
void
inorder
(binode *root)
}//後序遍歷二叉樹
void
postorder
(binode *root)
}//統計節點數
void
cal_node
(binode *root)
}//統計葉子數 方法一
void
cal_leaf
(binode *root)
}//統計葉子數 方法二
int calleaf
(binode *root)
return hl+hr;
}//列印葉子資料
void
printleaf
(binode *root)
}//計算二叉樹深度(方法一)
int cal_depth
(binode *root)
}//計算二叉樹高度(方法二)
void
caldepth
(binode *root, int h)
}//樹狀列印二叉樹
void
print_tree
(binode *root, int h)
}int main()
/*測試資料
原文出處
C語言實現二叉樹的基本操作
我在前面的部落格中講解了鍊錶 棧和佇列,這些資料結構其實都是線性表,並且給出了詳細的實現。從今天開始,我們將要來學習樹,樹作為一種資料結構我們經常會用到,作為起步和基礎,我們先來實現二叉樹,也就是每個節點有不超過2個子節點的樹。對於樹的操作,最基本的建立 遍歷 求樹高 節點數等。上傳至 1 節點的定...
c語言實現二叉樹的基本操作
hljs lasso include 二叉樹的節點定義 typedef struct treenode btnode,pbtnode 先序構造二叉樹 void createbtree pbtnode root 先序遍歷二叉樹 void preorder pbtnode root 中序遍歷二叉樹 vo...
C語言實現二叉樹的基本操作
如下 include include 二叉樹的節點定義 typedef struct treenode btnode,pbtnode 先序構造二叉樹 int createbitree pbtnode t return1 先序遍歷二叉樹 void preorder pbtnode root 中序遍歷二...