首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
admin
2017-01-04
1
问题
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
选项
答案
根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre(初值为null)和全局变量flag,初值为true。若非二叉排序树,则置flag为false。 #define true 1 #define false 0 typedef struct node{ datatype data; struct node * llink,* rlink: }*BTree; void JudgeBST(BTree t,int flag){ //判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag得出结论 if(t!=null&&flag){ JudgeBST(t一>llink,flag): //中序遍历左子树 if(pre==null)pre=t; //中序遍历的第一个结点不必判断 else if(pre一>data<t一>data)pre=t; //前驱指针指向当前结点 else flag=false: //不是二叉排序树 JudgeBST(t一>rlink,flag); //中序遍历右子树 } } 本题的另一算法是依照定义,二叉排序树的左右子树都是二叉排序树,根结点的值大于左子树中所有值而小于右子树中所有值,即根结点大于左子树的最大值而小于右子树的最小值。算法如下: int JudgeBST(BTree t){ //判断二叉树t是否是二叉排序树,若是,返回true,否则,返回false if(t==null)return true; if(JudgeBST(t->llink)&&JudgeBST(t->rlink)){ //若左右子树均为二叉排序树 m=max(t一>llink):n=min(t->rlink); //左子树中最大值和右子树中最小值 return(t一>data>m&&t一>data
解析
转载请注明原文地址:https://kaotiyun.com/show/4QRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述近代法国专制制度形成的过程及其影响
春秋初年,首先利用“挟天子以令诸侯”的旗号发展自己势力的是()国。
晚清时期清帝年号的正确排序是()
白虎观会议是由汉()帝主持的。
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
在下面哪本著作中以异化劳动理论的形式阐述了一种新的科学世界观的雏形?()
对斯大林时期形成的高度集中的社会主义经济政治体制的叙述,不确切的是()。
已知一组关键字为(26,36,41,38,44,15,68,12,6,51,25),用链地址法解决冲突。假设装填因子a=0.75,散列函数的形式为H(K)=KMODP,回答下列问题:(1)构造散列函数。(2)画出散列表。(
某机字长32位,它的存储容量为256MB,按字节编址,则它的寻址范围大小为()。
下列几种排序方法中,要求内存量最大的是()。
随机试题
社会学创立的历史条件包括【】
气象气候旅游资源的特点有速变性、_______、_______地域性。
Somepeopleare(fedupwithmoderncitylife)andhavemovedtothecountry.
下述情况能导致肾小球滤过率减少的是
胞浆内产生ATP的方式是()。
在工程经济分析中,如果各方案的计息期不同,就应该用( )进行评价,从而得出正确的结论。
根据商业银行法律制度的规定,商业银行的下列事项中,应当经中国银监会批准的有()。
甲公司为增值税一般纳税人,适用的货物增值税税率为16%,2019年至2020年发生的与固定资产有关的业务如下:(1)2019年3月1日,甲公司外购一台需安装的生产设备,取得增值税专用发票注明的价款为600万元,增值税税额为96万元,支付运费取得增值税专用
个别教师不允许班上学习差的学生参加考试,随意占用学生的上课时间,指派学生参加一些与教育教学无关的商业庆典活动等,这些行为主要是侵害了学生的()。
如图所示的数据库系统层次示意图中,数据库管理员能够管理操作的有
最新回复
(
0
)