用c语言完成程序,要求编程实现以先序遍历序列输入,创建一棵二叉树
时间: 2024-11-30 19:19:37 浏览: 25
二叉树遍历_C语言_
5星 · 资源好评率100%
在C语言中,我们可以使用递归的方式来实现二叉树的先序遍历。首先,我们需要定义一个结构体表示二叉树节点:
```c
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子树指针
struct TreeNode* right; // 右子树指针
} TreeNode;
```
接下来,我们编写函数用于输入节点值并构造二叉树:
```c
TreeNode* createTree(int input[], int n) {
if (n <= 0) return NULL; // 如果输入序列为空,返回空树
TreeNode* root = malloc(sizeof(TreeNode)); // 创建根节点
root->val = input[0]; // 设置根节点的值
// 使用递归构建左子树和右子树
root->left = createTree(input + 1, n / 2);
root->right = createTree(input + n / 2 + 1, n - n / 2);
return root;
}
```
这个`createTree`函数接受一个整数数组`input`和长度`n`作为输入,按照先序遍历(根-左-右)的方式递归地构建二叉树。
这里假设输入的整数数组`input`是一个非空、奇数长度的序列,每个元素代表对应节点的值。如果输入顺序有误或者不是这种形式,你需要相应地调整输入处理部分。
阅读全文