主题:请高手帮忙看看本程序 二叉树的基本操作
请高手帮忙看看本程序:
#include"malloc.h"
#include"string.h"
typedef struct bnd{
char data;
struct bnd *l,*r;
}bnd,*bt;
creatt(bt *t,char *ch,int i)
{
if(ch[i]=='$'||i>strlen(ch))
{
*t=NULL;
return 1;
}
*t=(bnd *)malloc(sizeof(bnd));
if(*t==NULL) return 0;
creatt(&((**t).l),ch,i*2);
(**t).data=ch[i];
creatt(&((**t).r),ch,i*2+1);
}
int vis(bt t)
{
printf("%c",(*t).data);
return 1;
}
ldr(bt t)
{
if(t){
if(vis(t))
if(ldr((*t).l))
if(ldr((*t).r))
return 1;
return 0;
}else return 1;
}
main()
{
bt t,*p;
char *c="a";
creatt(&t,c,1);
ldr(t);
}
为什么运行后不出结果啊......
#include"malloc.h"
#include"string.h"
typedef struct bnd{
char data;
struct bnd *l,*r;
}bnd,*bt;
creatt(bt *t,char *ch,int i)
{
if(ch[i]=='$'||i>strlen(ch))
{
*t=NULL;
return 1;
}
*t=(bnd *)malloc(sizeof(bnd));
if(*t==NULL) return 0;
creatt(&((**t).l),ch,i*2);
(**t).data=ch[i];
creatt(&((**t).r),ch,i*2+1);
}
int vis(bt t)
{
printf("%c",(*t).data);
return 1;
}
ldr(bt t)
{
if(t){
if(vis(t))
if(ldr((*t).l))
if(ldr((*t).r))
return 1;
return 0;
}else return 1;
}
main()
{
bt t,*p;
char *c="a";
creatt(&t,c,1);
ldr(t);
}
为什么运行后不出结果啊......