2236: DS-模拟题4
金币值:2
定数:9
时间限制:1.000 s
内存限制:128 M
正确:69
提交:194
正确率:35.57% 命题人:
题目描述
输入若干字符序列('$\#$'代表空),按先序序列建立二叉树(采用二叉链表存储),输出该二叉树的中序遍历序列,请填空。代码中,函数 $InitBiTree$ 用于初始化一棵空树,$CreateBiTree$ 根据输入字符串创建一个二叉链表存储的树,$InOrderTraverse$ 中序遍历二叉树。(仅提交填空部分)
测试代码 复制
#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 InOrderTraverse(BiTree T);
int main(void) {
BiTree T;
InitBiTree(T);
CreateBiTree(T);
InOrderTraverse (T);
return 0;
}
void InitBiTree(BiTree &T) {
T=NULL;
}
/* 按先序输入二叉树中结点的值(一个字符),#表示空树,构造二叉链表表示二叉树T。 */
void CreateBiTree(BiTree &T) {
char ch;
ch=getchar();
if(ch=='#') T=NULL;
else if(ch=='\0') return;
else {
T=(BiTree)malloc(sizeof(BiTNode));
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
//仅提交填空部分
void InOrderTraverse(BiTree T) {
if(T!=NULL) {
______________
}
}
输入格式
在一行上输入若干个字符以建立一棵二叉树,遇‘$\#$’表示建立一个空二叉树。
输出格式
二叉树的中序遍历序列。
输入样例 复制
A#BC##DE###
输出样例 复制
ACBED