请使用二叉树的先序遍历算法,统计二叉树中叶子结点的个数(假设二叉 树已经使用链式存储,根结点的指针为Btree *root) 。不需要函数模板。 函数原型: void leaf count(Btree *root,int &k) 其中指针root指向二叉树的根结点,参数k为统计叶子结点数。
时间: 2023-12-03 17:45:15 浏览: 75
下面是二叉树先序遍历算法,统计叶子结点的个数的代码:
```cpp
struct Btree{
int val;
Btree *left, *right;
};
void leafCount(Btree *root, int &k){
if(root == NULL){
return;
}
if(root->left == NULL && root->right == NULL){
k++;
}
leafCount(root->left, k);
leafCount(root->right, k);
}
```
其中,参数 `root` 指向二叉树的根结点,参数 `k` 用来统计叶子结点数。当 `root` 为空时,直接返回;当 `root` 的左右子树都为空时,说明 `root` 是叶子结点,统计器 `k` 加 1;否则,递归遍历左右子树。
使用时,可以将 `k` 初始化为 0,再调用 `leafCount` 函数,最后输出 `k` 即可得到叶子结点数。
阅读全文