1677: 树-二叉树的创建和交换二叉树的左右子树
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:8
提交:13
正确率:61.54% 命题人:
题目描述
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) { } }