用C语言创建二叉树并计算结点数
时间: 2023-06-18 13:04:40 浏览: 49
以下是用C语言创建二叉树并计算节点数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *left;
struct Node *right;
};
struct Node* createNode(int data) {
struct Node* node = (struct Node*) malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
struct Node* insert(struct Node* root, int data) {
if (root == NULL) {
return createNode(data);
}
if (data < root->data) {
root->left = insert(root->left, data);
} else if (data > root->data) {
root->right = insert(root->right, data);
}
return root;
}
int countNodes(struct Node* root) {
if (root == NULL) {
return 0;
}
return 1 + countNodes(root->left) + countNodes(root->right);
}
int main() {
struct Node* root = NULL;
root = insert(root, 10);
insert(root, 5);
insert(root, 15);
insert(root, 3);
insert(root, 7);
insert(root, 13);
insert(root, 17);
printf("Total nodes: %d", countNodes(root));
return 0;
}
```
在这个示例中,我们使用了一个结构体 `Node` 表示二叉树的节点。`createNode` 函数用于创建一个新节点。`insert` 函数用于向二叉树中插入一个新节点。`countNodes` 函数用于计算二叉树中的节点数。
在 `main` 函数中,我们首先创建一个空的二叉树,并向其中插入一些节点。然后调用 `countNodes` 函数来计算节点数,并将结果打印出来。在这个示例中,二叉树一共有 7 个节点,因此输出结果为 `Total nodes: 7`。