首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请进来看看这个先序遍历二叉树的程序,该如何解决

2012-03-15 
请进来看看这个先序遍历二叉树的程序#includeiostream.h#includestdio.h#includemalloc.h#defineMAX

请进来看看这个先序遍历二叉树的程序
#include   <iostream.h>
#include   <stdio.h>
#include   <malloc.h>

#define   MAXSIZE100

struct   BiTNode
{
char   data;
struct   BiTNode   *lchild,   *rchild;
};

BiTNode   *BiTree;

void   CreateBiTree(BiTNode   *BiTree)//先序递归构造二叉树
{
char   ch;    
cout < < "输入节点数据(char   型)(空格代表NULL): ";     //这句要把数据
//全部输入后才会显示出来     不知道为什么?
ch   =   getchar();
if(ch   ==   '   ')//若为叶子节点则其左右孩子均为空
BiTree   =   NULL;
else
{
BiTree   =   (BiTNode   *)malloc(sizeof(BiTNode));
BiTree-> data   =   ch;//生成根节点
CreateBiTree(BiTree-> lchild);//构造左子树
CreateBiTree(BiTree-> rchild);//构造右子树
}
}

void   PreOrderTraverse(BiTNode   *BiTree)//先序遍历二叉树并输出
{
if(BiTree)
{
cout < < "   " < <BiTree-> data;
if(BiTree-> lchild)
{
PreOrderTraverse(BiTree-> lchild);
if(BiTree-> rchild)
PreOrderTraverse(BiTree-> rchild);
}
}
}

void   main()
{
BiTree   =   (BiTNode   *)malloc(MAXSIZE   *   sizeof(BiTNode));
BiTree   =   NULL;
CreateBiTree(BiTree);
PreOrderTraverse(BiTree);
}


[解决办法]
//这句要把数据
//全部输入后才会显示出来 不知道为什么?
仅仅是这个问题吗?
因为这个流并没有结束,请在该句后面添加 < <endl;表示流结束,则该句自然会显示出来了。

热点排行