c语言实现查找二叉树的结点个数
时间: 2024-01-26 13:01:42 浏览: 70
查找二叉树的c语言实现
5星 · 资源好评率100%
以下是C语言实现查找二叉树的结点个数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *left;
struct node *right;
};
struct node *create_node(int data) {
struct node *new_node = (struct node *)malloc(sizeof(struct node));
new_node->data = data;
new_node->left = NULL;
new_node->right = NULL;
return new_node;
}
struct node *insert_node(struct node *root, int data) {
if (root == NULL) {
return create_node(data);
}
if (data < root->data) {
root->left = insert_node(root->left, data);
} else if (data > root->data) {
root->right = insert_node(root->right, data);
}
return root;
}
int count_nodes(struct node *root) {
if (root == NULL) {
return 0;
}
return 1 + count_nodes(root->left) + count_nodes(root->right);
}
int main() {
struct node *root = NULL;
root = insert_node(root, 10);
insert_node(root, 20);
insert_node(root, 5);
insert_node(root, 8);
insert_node(root, 3);
printf("Total number of nodes in the binary search tree is: %d\n", count_nodes(root));
return 0;
}
```
在这个实现中,我们首先定义了一个结构体`node`表示二叉树中的一个节点,包括数据`data`和左右子节点`left`和`right`。然后,我们实现了一个函数`create_node`用于创建一个新节点。接着,我们实现了一个函数`insert_node`,用于向二叉树中插入一个新节点。最后,我们实现了一个函数`count_nodes`,用于计算二叉树中的节点个数,其中递归地计算左右子树中的节点个数,并加上根节点的个数。在主函数中,我们创建了一个二叉树并计算其中的节点个数。
阅读全文