SHAOXIAOJ正在加载中...

1677: 树-二叉树的创建和交换二叉树的左右子树

金币值:2 定数:10 时间限制:1.000 s 内存限制:128 M
正确:8 提交:13 正确率:61.54% 命题人:

题目描述

1. 建立一棵二叉树(采用先序建立的方法),二叉树中的结点数据类型为字符型。
2.输出该二叉树的先序遍历、中序遍历和后序遍历的结果。
3.交换上述二叉树的左右子树。
4.输出转换之后的二叉树的先序遍历、中序遍历和后序遍历的结果。

输入格式

第1行输出若干个字符以便建立一棵二叉树,遇到‘#’表示建立一个空二叉树。

输出格式

第2-4行分别输出建立的二叉树的先序、中序和后序遍历序列
第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) {

	}
}