-tthappy 2023-04-02 12:24 采纳率: 55.6%
浏览 18

判断二叉树是否相等为何没结果

题目是:判断两颗二叉树是否相等。
以下p1是我的运行结果,p2是我要判断的两颗二叉树。为何没有运行结果呢?请指教谢谢不胜感激

img


img

   #include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROW 0
#define OVERFLOW -1
int flag=1;    //flag判断两棵树是否相等 
typedef struct BiTNode
{char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void xinsert(BiTree &T) //先序 输入 
{char ch;
scanf("%c",&ch);
if (ch=='#')     //#表示空 
T=NULL;
else 
{T=new BiTNode;
T->data=ch;
xinsert(T->lchild);
xinsert(T->rchild);
}
}
 int Judge(BiTree &T1,BiTree &T2)  //第二题 
  {
  if(T1&&T2)   //T1,T2不为空。 
  {if(T1->data!=T2->data||flag==0)  //若字符不相等,flag=0  
    {flag=0;             //只要有一个判断不相等的情况,后面无论怎么判断,flag都为0 
    return 0;
    }
    else 
    {
    Judge(T1->lchild,T2->lchild);  //若字符相等,则递归判断它的左右子树是否相等。 
    Judge (T1->rchild,T2->rchild);
    return OK;
    }
  }
  }
int main()
  {BiTree T;
  BiTree T2;
  printf("请先序输入T二叉树元素,并以'#'表示该节点为空\n");//先序输入第一棵二叉树 
   xinsert(T);
printf("\n请先序输入第T2二叉树元素,并以'#'表示该节点为空\n");//先序输入第二棵二叉树 
   xinsert(T2);
   int x;
   Judge(T,T2);     //调用函数 
   if (flag==0) x=0;//若flag==0,则x=0 
   else x=1; //否则x=1 
   printf("\n第二题:判断T与T2是否相等?(0为否,1为是)\n%d\n",x);//x为0就明不相等,x为1说明相等 
   return 0; 
  }

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 4月2日

悬赏问题

  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤
  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker