桃灯czh 2016-05-14 12:47 采纳率: 12.5%
浏览 1293

知道二叉树的中序和后序建立二叉树的代码哪里有问题?为什么只能建立3个结点?

#include
#include
#include
char zs[100];
char hs[100];
struct node
{
char data;
struct node l;
struct node *r;
};
int treedepth(struct node *TT)
{
int i=0,j=0;
if(!TT) return 0;
i=treedepth(TT->l);
j=treedepth(TT->r);
return i>j?i+1:j+1;
}
struct node * creat(struct node *&T,char zs[],char hs[],int len)
{
// printf("%d *
*\n",len);
if(len==0) T=NULL;
else
{

    int i;
    for(i=0;i<=len-1;i++)
    {
        if (zs[i]==hs[len-1]) break;
    }
   // printf("%d    * * * *%d\n",i,len);
   if(i>=len) T=NULL;
    else
    {

        T=(struct node *)malloc(sizeof(struct node));
        T->data=hs[len-1];
       // printf("%c",hs[len-1]);
        if(i==0) T->l=NULL;
        else T->l=creat(T->l,zs,hs,i);
        if(i==len-1) T->r=NULL;
        else T->r=creat(T->r,zs+i-1,hs+i,len-i-1);
    }
}
return T;

}
void travel(struct node TT)
{
if(TT)
{
printf("%c
**\n",TT->data);
travel(TT->l);
travel(TT->r);
}
}
int main()
{
int t;
scanf("%d",&t);
int len;
struct node *TT;
while(t--)
{
struct node *T;
T=NULL;
scanf("%s%s",zs,hs);
len=strlen(zs);
TT=creat(T,zs,hs,len);
travel(TT);
printf("%d\n",treedepth(TT));
}
}

  • 写回答

2条回答 默认 最新

  • devmiao 2016-05-14 15:50
    关注

    看下代码是不是有问题造成的。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?