R6-1 二叉树 - 10. 求结点数 分数 8 作者 李祥 单位 湖北经济学院 请编写函数,求二叉树的结点个数。 函数原型 int BinTreeNumNode(const TNODE *root); 说明:root 为二叉树的根指针,函数值为二叉树的结点数。 在“BinTree.h”中声明函数,在“BinTree.c”中实现函数。 BinTree.h ...... int BinTreeNumNode(const TNODE *root); ...... BinTree.c ...... /* 你提交的代码将被嵌在这里 */ 打开“main.c”,修改主函数对以上函数进行测试。 main.c #include <stdio.h> #include "BinTree.h" int main() { TNODE *r; BinTreeCreate(&r); BinTreeInput(&r); printf("%d\n", BinTreeNumNode(r)); BinTreeDestroy(&r); return 0; } 题图.jpg 输入样例 EIBJ##H###DF#A##G#C## 输出样例 10
时间: 2024-02-07 11:04:15 浏览: 120
好的,问题已经收到。关于你的问题,我已经了解到了题目要求,可以开始回答了。
这道题需要求出给定二叉树的结点个数。我们可以使用递归的方式来实现这个算法,即对于当前节点,其结点个数为其左子树结点个数加上右子树结点个数再加上 1。递归终止条件是当前节点为 NULL,此时结点个数为 0。
以下是代码实现:
```
int BinTreeNumNode(const TNODE *root) {
if (root == NULL) {
return 0;
}
return BinTreeNumNode(root->left) + BinTreeNumNode(root->right) + 1;
}
```
在测试时,可以使用给定的 `main` 函数。
阅读全文