二叉树采用二叉链表结构存储,编写算法实现统计二叉树中节点个数用c语言
时间: 2024-11-21 14:17:17 浏览: 47
在C语言中,为了统计二叉树中节点的总数,你可以使用递归的方式来遍历整个二叉树。这里提供一种常见的前序遍历(先根、左子树、右子树)的递归算法示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点结构体
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子树指针
struct TreeNode* right; // 右子树指针
} TreeNode;
// 用于计算节点个数的辅助函数
int countNodes(TreeNode* root) {
if (root == NULL) { // 如果当前节点为空,则返回0
return 0;
} else {
// 递归地计算左右子树的节点数,并加上当前节点
return 1 + countNodes(root->left) + countNodes(root->right);
}
}
// 主函数测试
int main() {
// 创建并初始化二叉树
TreeNode* root = createYourBinaryTree(); // 你需要实现创建二叉树的函数
int nodeCount = countNodes(root);
printf("二叉树中有 %d 个节点.\n", nodeCount);
free(root); // 清理内存
return 0;
}
```
在这个例子中,`createYourBinaryTree()` 是用户需要自己实现的部分,它会根据需求创建一个二叉树的根节点。然后,`countNodes()` 函数通过递归的方式遍历整棵树并累加节点计数。
阅读全文
相关推荐


















