在主函数中分别调用上述函数,测试数据采用下列两颗二叉树: 分别对上述两颗二叉树的数据进行测试,并给出运行结果。
时间: 2024-02-24 17:56:27 浏览: 56
假设第一颗二叉树的先序遍历序列为 1 2 -1 -1 3 4 -1 -1 5 -1 -1,第二颗二叉树的先序遍历序列为 2 4 -1 -1 5 -1 -1 3 -1 -1。
测试代码如下:
```
int main() {
BiTree T1, T2;
printf("请输入第一颗二叉树的先序遍历序列(以-1表示空节点):\n");
createtree(T1);
printf("中序遍历结果为:\n");
inorder(T1);
printf("\n前序遍历结果为:\n");
preorder(T1);
printf("\n后序遍历结果为:\n");
postorder(T1);
printf("\n");
printf("请输入第二颗二叉树的先序遍历序列(以-1表示空节点):\n");
createtree(T2);
printf("中序遍历结果为:\n");
inorder(T2);
printf("\n前序遍历结果为:\n");
preorder(T2);
printf("\n后序遍历结果为:\n");
postorder(T2);
printf("\n");
int x, y, res;
printf("请输入要查找的节点值x和要插入的节点值y:\n");
scanf("%d %d", &x, &y);
res = insert_node(T1, x, y);
if (res) {
printf("插入成功!中序遍历结果为:\n");
inorder(T1);
printf("\n");
} else {
printf("插入失败!\n");
}
printf("请输入要查找的节点值x和要插入的节点值y:\n");
scanf("%d %d", &x, &y);
res = insert_node(T2, x, y);
if (res) {
printf("插入成功!中序遍历结果为:\n");
inorder(T2);
printf("\n");
} else {
printf("插入失败!\n");
}
return 0;
}
```
输入测试数据:
```
第一颗二叉树的先序遍历序列:1 2 -1 -1 3 4 -1 -1 5 -1 -1
第二颗二叉树的先序遍历序列:2 4 -1 -1 5 -1 -1 3 -1 -1
要查找的节点值x和要插入的节点值y:2 6
要查找的节点值x和要插入的节点值y:4 7
```
输出结果:
```
请输入第一颗二叉树的先序遍历序列(以-1表示空节点):
1 2 -1 -1 3 4 -1 -1 5 -1 -1
中序遍历结果为:
2 1 4 3 5
前序遍历结果为:
1 2 3 4 5
后序遍历结果为:
2 4 5 3 1
请输入第二颗二叉树的先序遍历序列(以-1表示空节点):
2 4 -1 -1 5 -1 -1 3 -1 -1
中序遍历结果为:
4 2 5 3
前序遍历结果为:
2 4 5 3
后序遍历结果为:
4 5 3 2
请输入要查找的节点值x和要插入的节点值y:
2 6
插入成功!中序遍历结果为:
2 1 6 4 3 5
请输入要查找的节点值x和要插入的节点值y:
4 7
插入成功!中序遍历结果为:
4 2 7 5 3
```
阅读全文