编写一个递归算法,将二叉链表表示的二叉树,判断两个二叉树是否相同的算法

黄睿君 2019-12-21 18:30:00

推荐回答

算法如下:#include"stdio.h"#include"malloc.h"#defineELEMTYPEchartypedefstructBiTNode{ELEMTYPEdata;structBiTNode*lchild,*rchild;}BiTNode;BiTNode*bulid/*建树*/{BiTNode*q;BiTNode*s;}voidpreoderBiTNode*bt/*先序遍历*/{ifbt!=NULL{printf"%c",bt->data;preoderbt->lchild;preoderbt->rchild;}}voidInOrderBiTNode*bt/*中序遍历*/{ifbt!=NULL{InOrderbt->lchild;printf"%c",bt->data;InOrderbt->rchild;}}voidpostOrderBiTNode*bt/*后序遍历*/{ifbt!=NULL{postOrderbt->lchild;postOrderbt->rchild;printf"%c",bt->data;}}main{inta;BiTNode*bt;bt=bulid;k1:printf"需要先序遍历输出请输入1,中序遍历请输入2,后序遍历请输入3,结束输入0:";scanf"%d",&a;switcha{case1:preoderbt;gotok1;case2:InOrderbt;gotok1;case3:postOrderbt;gotok1;case0:break;}。
齐文涛2019-12-21 19:39:03

提示您:回答为网友贡献,仅供参考。

其他回答

  • 用递归:a=当前节点是否为排序树,是为1,不是为0fx=1当x为叶节点fx=a&&fx->lchid&&fx-rchild 当x非叶节点----------------------------------------------------------------------intIsAVTreeBiTreet{inta=1;ift->Child==NULL&&t->Rchild==NULL return1; //叶子节点判断ift->Lchild->data>t->data||t->Rchild->datadata{a=0;a=a&&isAVTreet->Lchild&&IsAVTreet->Rchild;}returna;}扩展资料:构成递归需具备的条件:一、子问题须与原始问题为同样的事,且更为简单;二、不能无限制地调用本身,须有个出口,化简为非递归状况处理。在数学和计算机科学中,递归指由一种,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8。递归。
    边冬霞2019-12-21 19:14:42
  • 我昨天答过一个贴子,同样的。这个题目非常好,是智力题,感兴趣就替你想想:首先要搞清什么叫“相似”,这要定义好:如果有两个树的左右子树也对应相类,称“相似”。那程序就好编了,象遍历一样,仍用“递归”。算法:1.如果两个树,都是空,就是相似;2.如果两个树都不空,左子树与左子树也相似,右子树与右子树也相类,则这两树相似,这里明显是递归了;3.否则,两树中肯定有一个为空,另一个不为空,这种情况不相似;boolSimilarnode*t1,node*t2{ift1==NULL&&t2==NULL//两树都空returntrue;//空树,相似elseift1!=NULL&&t2!=NULL//两树非空{//有递归,下面拆开的目的,提高递归效率if!Similat1->Left,t2->Leftreturnfalse;//左跟左不相似,则树不相似if!Similat1->Right,t2->Rightreturnfalse;//右跟右不相似,则树不相似returntrue;//排除了不相似的情况,就是相似的了}elsereturnfalse;//剩下的情况就是一个空,另一个不空,肯定不相似}main{node*p,*q;//.................ifSimilap,q;//显示“树相似”else;//显示“树不相似。
    龙学颖2019-12-21 18:57:45
  • 判断二叉树是否为完全二叉树。完全二叉树的定义是,前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的。以3层二叉树为例,以下情况为完全二叉树。
    齐敬英2019-12-21 18:41:42

相关问答

是美国第三大城市芝加哥的学校。学校占地三百二十二英亩,拥有一百一十座教学办公楼、两个大型图书馆,除科研以外的财政预算超过十亿美元。伊利诺伊大学芝加哥分校的教学及科研实力为全国所公认,美国卡耐基高等教育基金会特别一类科研院校的称号,在全美三千两百所经承认的高等院校中,只有八十八所被授予此项荣誉称号。伊利诺伊大学芝加哥分校拥有良好的完善的学生服务设施和网络,东西两校园都有条件很好的学生宿舍和学生活动中心学校的十余个现代化电脑中心分布在两个校园的各处教学楼中,免费提供给学生使用,其中部分电脑中心为昼夜开放。其他学生活动设施还包括:两个标准室内游泳池,一个短池室内游泳池,多个网球场,多个室内篮球场,健身房,保龄球馆和桌球等。为方便学生和教职员工,学校有免费的空调车定时往来于校园各主要教学楼之间。另外,校园内还设有餐饮店、银行、书店、发廊、课间休息室、聚会厅等多项服务设施。伊利诺伊大学芝加哥分校是芝加哥市中心主要的研究型大学,共有学生27,000余名,教育质量堪称世界一流。伊利诺伊大学芝加哥分校共有15个学院,其中包括全国最大的医学院,每年研究花费超过三亿三千二百万美元。学生总人数中本科生约占65%,研究生和专业学院学生占35%,被认为是美国多样化程度最高的大学之一。学校特色伊利诺大学芝加哥分校创立于1982年,当时是由伊利诺大学医学中心与位于芝加哥的校区合并而成,因此伊利诺大学芝加哥分校医学专业享负盛名,其中犯罪研究专业研究生排名全美第19名。伊利诺大学芝加哥分校位于国际大都会芝加哥的心脏地带,为芝加哥最大型的高等教育机构,在学术教学质量上及实际研究成果上,都相当著名,为全美排名前百名的研究型大学之一,曾被USNewsandWorldReport评为三级国家级大学,学术声誉全美排名98。伊利诺大学芝加哥分校的商业管理、工程、社会科学、健康科学、心理学、建筑学颇负盛名,深受学生们喜爱。伊利诺大学芝加哥分校在专业领域上也独树一帜,拥有多种专业的研究中心及机构,并多有杰出表现及获得多种国家级评鉴优良声誉或奖项,如:美国科学发展协会AmericanAssociationfortheAdvancementofScience、美国人文基金会NationalEndowmentfortheHumanities等。