用C语言写出这个函数CreateBT(BiTree &T):从键盘输入二叉树的先序遍历序列字符串(以”*”代 表空结点),建立其二叉链表;
时间: 2024-10-20 10:13:37 浏览: 27
在C语言中,你可以使用递归的方式来实现这个函数CreateBT,用于根据先序遍历的字符串构建二叉树。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode *left, *right;
} Node;
Node* CreateBT(BiTree &T) {
char input[100];
scanf("%s", input); // 从键盘读入输入字符串
if (input[0] == '*') { // 空节点
return NULL;
} else {
Node *root = (Node*)malloc(sizeof(Node));
root->data = atoi(input);
root->left = CreateBT(T); // 递归处理左子树
root->right = CreateBT(T); // 递归处理右子树
return root;
}
}
// 其他辅助函数和数据结构定义...
int main() {
BiTree T; // 定义二叉树类型
CreateBT(T); // 调用函数创建二叉树
// ...其他操作...
return 0;
}
```
在这个代码中,`CreateBT`函数首先检查当前字符是否表示空节点,如果是则返回NULL,否则创建一个新的节点,并继续递归地读取并创建左右子树。需要注意的是,这里假设输入字符串已经被预处理成只包含数字和'*'的形式。
阅读全文