c语言实现创建一棵二叉树并求它的高度
时间: 2023-10-15 08:07:19 浏览: 148
下面是使用 C 语言实现创建一棵二叉树并求它的高度的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct Node {
int data; // 数据
struct Node *left; // 左子树
struct Node *right; // 右子树
} Node;
// 创建二叉树
Node *createBinTree() {
int data;
printf("请输入节点的值(-1表示空节点):");
scanf("%d", &data);
if (data == -1) {
return NULL;
}
Node *node = (Node *)malloc(sizeof(Node));
node->data = data;
node->left = createBinTree();
node->right = createBinTree();
return node;
}
// 求二叉树高度
int getHeight(Node *root) {
if (root == NULL) {
return 0;
}
int leftHeight = getHeight(root->left);
int rightHeight = getHeight(root->right);
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
int main() {
Node *root = createBinTree();
int height = getHeight(root);
printf("二叉树的高度为:%d\n", height);
return 0;
}
```
在示例代码中,我们定义了一个二叉树结构体 `Node`,其中包含了数据、左子树和右子树三个属性。使用递归的方式创建二叉树,当输入值为 -1 时表示空节点。然后使用递归的方式求出二叉树的高度。
注意:在使用完二叉树后,需要释放二叉树的内存,避免内存泄漏。
阅读全文