描述

设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,按此方法创建两棵二叉树,然后编写递归算法判断这两棵树是否相等。

输入

多组数据,每组数据有两行。每行为一个二叉树的先序序列(序列中元素为‘0’时,表示该结点为空)。当输入只有一个“0”时,输入结束。

输出

每组数据输出一行。若两个二叉树相等输出“YES”,否则输出“NO”。

输入样例 1

abcd00e00f00ig00h00
abcd00e00f00ig00h00
abd00e00cf00g00
abd00e00cf00h00
0

输出样例 1

YES
NO
#include<iostream>
using namespace std;typedef struct BiTNode{int data;                         //结点数据域 struct BiTNode *lchild,*rchild;   //左右孩子指针
}BiTNode,*BiTree; //先序遍历创建二叉树
void CreatBiTree(BiTree &T){  //按先序次序输入二叉树中结点的值 创建二叉链表表示的二叉树 char ch;cin>>ch;if(ch=='0') T = NULL;         //递归结束 空树 else{                         //递归创建二叉树 T = new BiTNode;          //生成根节点T->data = ch;             //根结点数据域置ch CreatBiTree(T->lchild);   //递归创建左子树 CreatBiTree(T->rchild);   //递归创建右子树 }
}
void CreatBiTree(BiTree &T,char ch){  //按先序次序输入二叉树中结点的值 创建二叉链表表示的二叉树 if(ch=='0') T = NULL;         //递归结束 空树 else{                         //递归创建二叉树 T = new BiTNode;          //生成根节点T->data = ch;             //根结点数据域置ch CreatBiTree(T->lchild);   //递归创建左子树 CreatBiTree(T->rchild);   //递归创建右子树 }
} //int CmpTree(BiTree T1,BiTree T2){//判断两个二叉树是否相等
//     int left,right;
//     if(T1==NULL&&T2==NULL)
//      return 1;                  //都是NULL 不等
//     else if(T1==NULL||T2==NULL)
//    return 0;                  //只有一个为NULL 不等
//   if(T1->data!=T2->data)
//    return 0;                  //根节点不等 直接返回不等 否则递归
//    left = right = 0;
//    left = CmpTree(T1->lchild,T2->lchild);
//    right  = CmpTree(T1->rchild,T2->rchild);
//    return left&&right;
//}int CmpTree(BiTree T1,BiTree T2){if(T1&&T2){if(T1->data!=T2->data){//cout<<"NO"<<endl; return 0;}else{CmpTree(T1->lchild,T2->lchild);CmpTree(T1->rchild,T2->rchild);}   }
} int main()
{   char ch; while(cin>>ch&&ch!='0'){BiTree T1,T2;CreatBiTree(T1,ch);CreatBiTree(T2);if (CmpTree(T1,T2)!=0) cout<<"YES"<<endl;  else cout<<"NO"<<endl;}return 0;} 

基于二叉链表的树结构相等的判断相关推荐

  1. 3002基于二叉链表的树结构相等的判断(附WA的可能情况)

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,按此方法创建两棵二叉树,然后编写递归算法判断这两棵树是否相等. 输入 多组数据,每组数据有两行.每行为一个二叉树的先序序列(序 ...

  2. 3006基于二叉链表的二叉树最长路径的求解(附思路)

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写算法求出该二叉树中第一条最长的路径. 输入 多组数据.每组数据一行,为二叉树的先序序列(序列中元素为'0'时,表示该结点为 ...

  3. 3010基于二叉链表的二叉树高度的计算(附思路,WA的一种可能情况及代码)

    基于二叉链表的二叉树高度的计算 描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写递归算法计算二叉树的高度. 输入 多组数据.每组数据一行,为二叉树的前序序列(序列中元素为 ...

  4. 3010基于二叉链表的二叉树高度的计算

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写递归算法计算二叉树的高度. 输入 多组数据.每组数据一行,为二叉树的前序序列(序列中元素为'0'时,表示该结点为空).当输 ...

  5. 3003基于二叉链表的二叉树左右子树的交换

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写递归算法交换该二叉树的左右孩子. 输入 多组数据.每组数据一行,为二叉树的先序序列(序列中元素为'0'时,表示该结点为空) ...

  6. 【数据结构】基于二叉链表的二叉树结点个数的统计

    基于二叉链表的二叉树结点个数的统计 描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写三个递归算法分别对二叉树的结点(度为0.1.2)个数进行统计. 输入 多组数据.每组数 ...

  7. 基于二叉链表的二叉树高度的计算

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写递归算法计算二叉树的高度. 输入 多组数据.每组数据一行,为二叉树的前序序列(序列中元素为'0'时,表示该结点为空).当输 ...

  8. 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)

    以下代码用到的前置知识:DFS算法 可以看这个视频~只用看这个就能懂了~ DFS深搜解决迷宫问题(原理分析+代码实现)_哔哩哔哩_bilibilihttps://www.bilibili.com/vi ...

  9. 3004基于二叉链表的二叉树的双序遍历(附题意解释)

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写递归算法实现该二叉树的双序遍历(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次 ...

  10. 3009基于二叉链表的二叉树结点个数的统计(附思路)

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写三个递归算法分别对二叉树的结点(度为0.1.2)个数进行统计. 输入 多组数据.每组数据一行,为二叉树的前序序列(序列中元 ...

最新文章

  1. Mybatis复习笔记:1
  2. 密码危机:深度学习正在加速密码破解!
  3. Win10 KB4541335 部分用户遭遇系统蓝屏/性能下降问题
  4. html div转换图片
  5. 【luogu】 P1880 石子合并
  6. 互联网计算机技术方面的入门书籍有哪些推荐?
  7. html5实现拖拽上传图片,JS HTML5拖拽上传图片预览
  8. 电子邮件传输协议原理简介
  9. SkeyeLive开源流媒体同屏直播软件源码功能框架解析
  10. 中国汉字一、二级字库的汉字与unicode编码(十六进制)对照表(收藏)
  11. 数据备份与数据容灾全解析
  12. 从认知负荷理论看语音交互设计
  13. java中求平均数怎么写,java求平均数函数
  14. 「干货」从动态的角度分析DDR的时序结构
  15. Android组件化开发实践和案例分享 1
  16. 国际贸易术语解释通则(EXW 工厂交货…(指定地点))
  17. 408 の 操作系统
  18. Go mgo+Mongodb连接失败问题
  19. 零售行业如何利用数据支撑全业务体系,8大场景1个案例讲清楚
  20. 学习enscape动画制作渲染之前,这些技巧必看

热门文章

  1. python开发ios程序_使用Python开发iOS程序
  2. linux上机考试题(Linux基础)
  3. 2013年9月份第2周51Aspx源码发布详情
  4. 疫情下的思考:全球疫情带来的危机与机遇
  5. 《趣谈网络协议》课程学习笔记
  6. java实现文字跑马灯_跑马灯的问题
  7. unity 代码边缘发光_unity游戏物体边缘发光高亮突出显示系统插件Highlighting System 5.0...
  8. 破解还原卡的方法总结
  9. Devexpress 10.1.6 源代码重新编译成功(DXperience 10.1.6 重新编译)附所有需要用到的资源下载地址 (收藏)...
  10. Qt实现界面滑动切换效果