1677: 树-二叉树的创建和交换二叉树的左右子树
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:21
提交:47
正确率:44.68% 命题人:
题目描述
1. 建立一棵二叉树(采用先序建立的方法),二叉树中的结点数据类型为字符型。
2.输出该二叉树的先序遍历、中序遍历和后序遍历的结果。
3.交换上述二叉树的左右子树。
4.输出转换之后的二叉树的先序遍历、中序遍历和后序遍历的结果。
2.输出该二叉树的先序遍历、中序遍历和后序遍历的结果。
3.交换上述二叉树的左右子树。
4.输出转换之后的二叉树的先序遍历、中序遍历和后序遍历的结果。
输入格式
第1行输出若干个字符以便建立一棵二叉树,遇到‘#’表示建立一个空二叉树。
输出格式
第2-4行分别输出建立的二叉树的先序、中序和后序遍历序列
第5-7行分别输出转换的二叉树的先序、中序和后序遍历序列
第5-7行分别输出转换的二叉树的先序、中序和后序遍历序列
输入样例 复制
-*a##b##e##
输出样例 复制
-*abe
a*b-e
ab*e-
-e*ba
e-b*a
eba*-
提示
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode {
char data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
void InitBiTree(BiTree &T);
void CreateBiTree(BiTree &T);
void SwapBiTree(BiTree T);
void PreOrderTraverse(BiTree T);
void InOrderTraverse(BiTree T);
void PostOrderTraverse(BiTree T);
void visit(char e) {
printf("%c",e);
}
int main(void) {
BiTree T;
InitBiTree(T);
CreateBiTree(T);
PreOrderTraverse(T);
printf("\n");
InOrderTraverse(T);
printf("\n");
PostOrderTraverse(T);
printf("\n");
SwapBiTree(T);
PreOrderTraverse(T);
printf("\n");
InOrderTraverse(T);
printf("\n");
PostOrderTraverse(T);
printf("\n");
return 0;
}
/* 构造空二叉树T */
void InitBiTree(BiTree &T) {
T=NULL;
}
/* 按先序输入二叉树中结点的值(一个字符) */
/* #表示空树,构造二叉链表表示二叉树T。 */
void CreateBiTree(BiTree &T) {
}
/*交换二叉树T的左右子树*/
void SwapBiTree(BiTree T) {
if(T!=NULL) {
}
}
/*先序递归遍历T */
void PreOrderTraverse(BiTree T) {
if(T!=NULL) {
}
}
/*中序递归遍历T */
void InOrderTraverse(BiTree T) {
if(T!=NULL) {
}
}
/*后序递归遍历T */
void PostOrderTraverse(BiTree T) {
if(T!=NULL) {
}
}