数据结构-二叉树相似问题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 据 结 构 课 程 实 验 报 告 班级:计嵌141 姓名:陈志远 学号:1413052023 二叉树相似问题 ?问题描述? 两颗二叉树相似,指要么他们都为空或都只有一个根结点,要么它们的左右子树均相似,本问题是:设计一个算法,判断两颗二叉树是否相似。?? 2.?基本要求? (1)?设计二叉树的存储结构和建立算法。 ?(2)?设计二叉树相似的判断算法。 ?(3)?输入:两颗二叉树。 ? (4)?输出:判定结果,相似或不相似。? 实现提示 (1)存储设计 Class?BinTreeNode {?? char?data;? ? BinTreeNode?*?Lchild;?? BinTreeNode?*?Rchild;? BinTreeNode?*?Parent;?};? 算法设计 代码设计 #includeiostream? using?namespace?std;? static?int?count=1;? struct?node? {?? char?data;?? node?*lchild;? node?*rchild;? };? class?Bitree? {? public:? node?*root;? Bitree()? {? root=NULL;? }? void?CreatBitree();? void?PretraBitree();? } ? static?void?Create(node*p,int?k)? {? //创建二叉树 node?*q;?? char?x;? cinx;? if(x!=#)? {? q=new?node;? q-data=x;? if(k==1)? p-lchild=q;? if(k==2)?? p-rchild=q;? Create(q,1); Create(q,2);? }? ?else {?? q=new?node;? q-data=x;? q-lchild=NULL;? q-rchild=NULL;?? if(k==1)?? p-lchild=q;?? if(k==2)? p-rchild=q;? ?}? }? void?Bitree::CreatBitree()? {? node?*p;? char?x;? cinx;? if(x==#)? {? p=new?node;? p-data=x;? p-lchild=NULL;? p-rchild=NULL;}? else? {? ?p=new?node;? ?p-data=x;? root=p;? Create(p,1);? Create(p,2);? }? }? static?void?pretraverse(node?*p)? {? //遍历二叉树 if(p!=NULL)? {? pretraverse(p-lchild); pretraverse(p-rchild);? }? } void?Bitree::PretraBitree()? {? node?*p;? p=root;? pretraverse(p);? coutendl;? }? static?void?like(node?*a,node?*b)? {? if(a!=NULLb!=NULL)? {? ?if((a-data==#b-data!=#)||(a-data!=#b-data==#))? count=0;? like(a-lchild,b-lchild);? like(a-rchild,b-rchild);? }? }? void?work()? {? Bitree?a;? Bitree?b;? cout输入二叉树A(#为虚结点):endl;? a.CreatBitree();?//创建二叉树A?? a.PretraBitree();//?先序遍历二叉树A cout输入二叉树B(#为虚结点):endl;? b.CreatBitree();?//创建二叉树B? b.PretraBitree();//?先序遍历二叉树B? like(a.root,b.root);?//判断AB是否相似 ?cout判断结果:;? ?if(count==1)? ? coutA与B相似endl;? else?coutA与B不相似endl;? }? int?main()? {? work();? return?0;? } 5.?运行结果? 输入二叉树A:ab#c#?#d##? 输入二叉树B:as#d#?#f##? 判断结果:A与B相似?? 输入二叉树A:ab#c#?#d##? 输入二叉树B:a##sd#?#f##? 判断结果:A与B不相似

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档