用C语言创造一个二叉树,并求二叉树的高度
时间: 2023-11-14 11:20:05 浏览: 83
下面是用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* node, int data) {
if (node == NULL) {
return createNode(data);
} else {
if (data <= node->data) {
node->left = insert(node->left, data);
} else {
node->right = insert(node->right, data);
}
return node;
}
}
int getHeight(struct Node* node) {
if (node == NULL) {
return -1;
} else {
int leftHeight = getHeight(node->left);
int rightHeight = getHeight(node->right);
if (leftHeight > rightHeight) {
return leftHeight + 1;
} else {
return rightHeight + 1;
}
}
}
int main() {
struct Node* root = NULL;
int n, i, data;
printf("Enter the number of nodes: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Enter node data: ");
scanf("%d", &data);
root = insert(root, data);
}
printf("Height of the binary tree is: %d", getHeight(root));
return 0;
}
```
在上面的代码中,我们定义了一个 `Node` 结构体来表示二叉树的节点。然后,我们实现了 `createNode` 函数来创建一个新的节点,以及 `insert` 函数来插入一个新的节点到二叉树中。最后,我们实现了 `getHeight` 函数来计算二叉树的高度。
在 `main` 函数中,我们首先创建了一个空的二叉树,然后输入节点数和节点数据,并将每个节点插入到二叉树中。最后,我们调用 `getHeight` 函数来计算二叉树的高度,并输出结果。
阅读全文