首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一棵二叉树采用二叉链表存储,结点构造为 root指向根结点。请编写算法判断该二叉树是否是平衡二叉树,即二叉树中任意结点的左右子树的深度相差不超过1,例如下图所示的二叉树就是一棵平衡二叉树。 要求: 根据设计思想,采用C或C++语言描述算法,关键之
已知一棵二叉树采用二叉链表存储,结点构造为 root指向根结点。请编写算法判断该二叉树是否是平衡二叉树,即二叉树中任意结点的左右子树的深度相差不超过1,例如下图所示的二叉树就是一棵平衡二叉树。 要求: 根据设计思想,采用C或C++语言描述算法,关键之
admin
2018-07-17
57
问题
已知一棵二叉树采用二叉链表存储,结点构造为
root指向根结点。请编写算法判断该二叉树是否是平衡二叉树,即二叉树中任意结点的左右子树的深度相差不超过1,例如下图所示的二叉树就是一棵平衡二叉树。
要求:
根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
选项
答案
算法的实现加下: void Judge_AVL(BjiTree bt,int &balance,int&h){ int bl,br,hl,hr; //左、右子树的平衡标记和高度 if,(bt==NULL){ //空树,高度为0 h=0, balance=1; } else if(p—>ichild==NULL&&p—>rchild==NULL){//仅有根结点,则高度为1 h=1; balance=1; } else{ Judge_AVL(bt—>lchild,bl,hi); //递归判断左子树 Judge_AVL(bt—>rchild,br,hr), //递归判断右子树 h=(hl>hr?hl:hr)+1, if(abs(hl,hr)<2) //若高度绝对值小于2,则看左、右子树是否都平衡 balance=bl&br; //&为逻辑与,即左、右子树都平衡时,二叉树平衡 else balance=0; } }
解析
转载请注明原文地址:https://kaotiyun.com/show/kfRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列不属于战时共产主义政策内容的是()。
1907年召开的第二国际斯图加特代表大会上,争论最激烈的问题是()。
西南军阀跟随孙中山拥护护法运动的目的是()。
在五四运动中起先锋作用的是()。
宁夏回族自治区的设立时间是()。
最早在中国传播马克思主义的是()。
简述按照恩格斯的划分方法人类的起源与进化。
希腊雅典城邦的“民众法庭审判官由公民抓签选出,任期只有一年,每个公民一生中只能担任两次审判官的职务”。此规定()。
试述“轴心时代”(公元前8世纪至前3世纪)中国、印度、希腊三大古典文化系统之异同。
下列对于南海诸岛的名称对应有误的一项是()。
随机试题
【B1】【B10】
止嗽散的药物组成是
全瓷冠可用于
《自主创新产品政府采购评审方法》规定,采用最低评标价法评标的项目,对自主创新产品可以在评审时对其投标价格给予()幅度不等的价格扣除。
HDPE膜材料质量检验应由()共同在现场抽样。
背景某机场工程机坪扩建项目施工进展到25周时,对前24周的工作进行了统计检查,检查结果见下表:计算24周末的合计ACWP、BCWS。
美国历史学家斯塔夫里阿诺斯指出:“正如整个世界感受到斯蒂芬孙的机车、富尔顿的汽船和加特林的机枪的影响一样,它也感受到《独立宣言》《人权和公民权宣言》和《共产党宣言》的影响。”斯塔夫里阿诺斯在这里说明的是()。
有以下程序#includemain(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是
Katya’s______loveofjusticecausedhertochampionanyonesheconsideredtobetreatedunfairlybysociety.
A、Theywillneedmorebudgetfromthegovernment.B、Theyhavemadegreatcontributionstothecountry.C、Theyarethepeoplewha
最新回复
(
0
)