数据结构的二叉树中,怎么输入字符序列,建立二叉链表?

求具体的例子。越详细越好。... 求 具体的例子。越详细越好。 展开
 我来答
方鸿晖09
推荐于2017-11-28 · TA获得超过1008个赞
知道小有建树答主
回答量:225
采纳率:66%
帮助的人:133万
展开全部
#include <stdio.h>
#include <stdlib.h>

#define OVERFLOW -1
#define OK 1
#define ERROR 0

typedef int Status;
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild;//左孩子指针
struct BiTNode *rchild;// 右孩子指针
}BiTNode;
typedef BiTNode *BiTree;

Status CreateBiTree(BiTree &T)
{//按给定的带空指针标记的先序序列建二叉链表
char ch;
ch=getchar();
if (ch==' ') T = NULL;
else {
if (!(T = (BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data = ch; // 生成根结点
CreateBiTree(T->lchild); // 构造左子树
CreateBiTree(T->rchild); // 构造右子树
}
return OK;
} // CreateBiTree

void Display(TElemType& e)
{
printf("%c\t",e);
}

void InOrderTraverse (BiTree T, void( *visit)(TElemType& e))
{ // 先序遍历二叉树
if (T==NULL) return;
InOrderTraverse(T->lchild, visit); // 遍历左子树
visit(T->data); // 访问根结点
InOrderTraverse(T->rchild, visit); // 遍历右子树
}

void main()
{
BiTree R;
printf("输入带空指针标记的先序序列:(例如AB C D )\n");
CreateBiTree(R);
printf("该二叉树的中序序列为:\n");
InOrderTraverse(R,Display);
printf("\n");
}
更多追问追答
追问
我按照你的例子输入序列,回车之后木有反应哇,,什么情况  啊?
追答
AB和C之间一个空格,C和D之间2个空格,D后边2个空格再回车
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式