用c语言输入格式: 二叉树将以这样的形式给出: 第一行给出一个正整数N(N<=100),表示二叉树上的节点个数! 接下来N行,每行包含三个整数,i,l,r,分别代表第i个节点的左右孩子! 如果它的左/右孩子为空,则在对应位置给出-1! 题目保证1是根节点! 输出格式: 请你输出它的三种遍历! 第一行输出先序遍历,第二行输出中序遍历,第三行输出后序遍历! 每行末尾无多余空格!
时间: 2023-12-15 11:06:50 浏览: 37
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#define MAXN 100
// 定义二叉树结构体
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
// 解析输入,构造二叉树
struct TreeNode* constructTree(int n) {
int i, l, r;
struct TreeNode *nodes[MAXN + 1], *root;
// 初始化节点指针数组
for (i = 1; i <= n; ++i) {
nodes[i] = (struct TreeNode*)malloc(sizeof(struct TreeNode));
nodes[i]->val = i;
nodes[i]->left = NULL;
nodes[i]->right = NULL;
}
// 构造二叉树
for (i = 1; i <= n; ++i) {
scanf("%d%d%d", &i, &l, &r);
if (l != -1) nodes[i]->left = nodes[l];
if (r != -1) nodes[i]->right = nodes[r];
}
// 找到根节点
root = nodes[1];
while (root->val != 1) root = nodes[root->val];
return root;
}
// 先序遍历
void preOrder(struct TreeNode* root) {
if (root) {
printf("%d ", root->val);
preOrder(root->left);
preOrder(root->right);
}
}
// 中序遍历
void inOrder(struct TreeNode* root) {
if (root) {
inOrder(root->left);
printf("%d ", root->val);
inOrder(root->right);
}
}
// 后序遍历
void postOrder(struct TreeNode* root) {
if (root) {
postOrder(root->left);
postOrder(root->right);
printf("%d ", root->val);
}
}
int main() {
int n;
struct TreeNode *root;
// 读入节点数和二叉树
scanf("%d", &n);
root = constructTree(n);
// 输出遍历序列
preOrder(root);
printf("\n");
inOrder(root);
printf("\n");
postOrder(root);
printf("\n");
return 0;
}
```
注意在使用 `scanf` 读入整数时,需要使用指针传递参数,即 `&i`、`&l` 和 `&r`。同时,由于题目中保证了 1 是根节点,因此在构造二叉树时可以直接从节点 1 开始。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)