using namespace std
//二叉树节点
struct BinaryNode
{
char ch
BinaryNode* lchild
BinaryNode* rchild
}
void CaculateLeafNum(BinaryNode* root)
int Leaf_Count = 0
void CaculateLeafNum(BinaryNode* root) {
if (!root) return
if (root->lchild == NULL && root->rchild == NULL) Leaf_Count++
CaculateLeafNum(root->lchild)
CaculateLeafNum(root->rchild)
}
//初始化二叉树
void CreateBinaryTree() {
BinaryNode node1 = { 'A',NULL,NULL }
BinaryNode node2 = { 'B',NULL,NULL }
BinaryNode node3 = { 'C',NULL,NULL }
BinaryNode node4 = { 'D',NULL,NULL }
BinaryNode node5 = { 'E',NULL,NULL }
BinaryNode node6 = { 'F',NULL,NULL }
BinaryNode node7 = { 'G',NULL,NULL }
BinaryNode node8 = { 'H',NULL,NULL }
//建立节点关系
node1.lchild = &node2
node1.rchild = &node6
node2.rchild = &node3
node3.lchild = &node4
node3.rchild = &node5
node6.rchild = &node7
node7.lchild = &node8
CaculateLeafNum(&node1)
cout << "Num of Leaf:" << Leaf_Count << endl
}
//二叉树遍历
int main() {
CreateBinaryTree()
}