树的输出问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:59:18
#include<stdio.h>
#include<malloc.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

void CreateBinTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
if(ch=='0') *T=NULL;
else{
*T=(BiTree)malloc(sizeof(BiTNode));
CreateBinTree(&(*T)->lchild);
CreateBinTree(&(*T)->rchild);
}

}

void InOrderOut(BiTree T)
{
if(T)
{InOrderOut(T->lchild);
printf("%c ",T->data);
InOrderOut(T->rchild);
}
}

main()
{
BiTree bt;
CreateBinTree(&bt);
InOrderOut(bt);
getch();
}
先序输入ABD0G000CE00F00,为什么中序会输出那些怪符号的???

#include<stdio.h>
#include<malloc.h>

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

void CreateBinTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
if(ch=='0')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=ch; ////here
CreateBinTree(&(*T)->lchild);
CreateBinTree(&(*T)->rchild);
}

}

void InOrderOut(BiTree T)
{
if(T)
{
InOrderOut(T->lchild);
printf("%c ",T->data);
InOrderOut(T->rchild);
}
}

void main()
{
BiTree bt;
CreateBinTree(&bt);
InOrderOut(bt);
}