关于二叉树的遍历得不到结果
来源:百度知道 编辑:UC知道 时间:2024/05/05 18:38:57
#include<stdio.h>
#include<stdlib.h>
typedef struct TreeNode
{
char date;
struct TreeNode *lchild,*rchild;
} TreeNode,*NodePoint;
int main (){
NodePoint T;
void CreatBinary(NodePoint T);
void PreOrder(NodePoint T);
void PostOrder(NodePoint T);
printf("用先序序列建立二叉树:\n");
printf("请输入二叉树拓展序列:\n");
printf("例如123####\n");
CreatBinary(T);
printf("建立完成\n");
PreOrder(T);
PostOrder(T);
}
void CreatBinary(NodePoint T)
{
char date;
date = getchar();
if(date=='#')
{
T= NULL;
}
else
{
if(!(T=(NodePoint)malloc(sizeof(TreeNode))))
exit(1);
T->date = date;
CreatBinary(T->lchild);
CreatBinary(T->rch
#include<stdlib.h>
typedef struct TreeNode
{
char date;
struct TreeNode *lchild,*rchild;
} TreeNode,*NodePoint;
int main (){
NodePoint T;
void CreatBinary(NodePoint T);
void PreOrder(NodePoint T);
void PostOrder(NodePoint T);
printf("用先序序列建立二叉树:\n");
printf("请输入二叉树拓展序列:\n");
printf("例如123####\n");
CreatBinary(T);
printf("建立完成\n");
PreOrder(T);
PostOrder(T);
}
void CreatBinary(NodePoint T)
{
char date;
date = getchar();
if(date=='#')
{
T= NULL;
}
else
{
if(!(T=(NodePoint)malloc(sizeof(TreeNode))))
exit(1);
T->date = date;
CreatBinary(T->lchild);
CreatBinary(T->rch
你的T没有指向任何值,就是一个野指针!下面是我修改了一下你的程序,能运行:(这里要用到指向指针的指针!)
#include<stdio.h>
#include<stdlib.h>
typedef struct TreeNode
{
char date;
struct TreeNode *lchild,*rchild;
} TreeNode,*NodePoint;
int main (){
NodePoint T;
void CreatBinary(NodePoint *T);
void PreOrder(NodePoint T);
void PostOrder(NodePoint T);
printf("用先序序列建立二叉树:\n");
printf("请输入二叉树拓展序列:\n");
printf("例如123####\n");
CreatBinary(&T);
printf("建立完成\n");
printf("先序遍历\n");
PreOrder(T);
printf("\n");
printf("后续遍历\n");
PostOrder(T);
printf("\n");
return 0;}
void CreatBinary(NodePoint *T)
{
char date;
date=getchar();
if(date=='#')
{
*T= NULL;
}
else
{