实现一个函数CreatBiTreeByKey(BiTree*T),这个函数可以根据用户的键盘输入,生成一个二叉树
时间: 2024-05-06 16:15:14 浏览: 67
好的,我可以给你提供一个示例代码,实现根据用户的键盘输入创建二叉树的功能:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
void CreatBiTreeByKey(TreeNode** T) {
int val;
printf("请输入结点的值(输入-1表示结束):\n");
scanf("%d", &val);
if (val == -1) {
*T = NULL;
} else {
*T = (TreeNode*)malloc(sizeof(TreeNode));
(*T)->val = val;
CreatBiTreeByKey(&((*T)->left));
CreatBiTreeByKey(&((*T)->right));
}
}
void InOrderTraversal(TreeNode* T) {
if (T) {
InOrderTraversal(T->left);
printf("%d ", T->val);
InOrderTraversal(T->right);
}
}
int main() {
TreeNode* T;
CreatBiTreeByKey(&T);
printf("中序遍历结果为:\n");
InOrderTraversal(T);
return 0;
}
```
使用方法:
1. 编译运行上述代码;
2. 按照提示输入每个节点的值,以 -1 结束输入;
3. 程序会自动构建二叉树,并输出中序遍历的结果。
希望这个示例代码可以帮助到你。
阅读全文