首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
admin
2019-08-15
17
问题
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用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<n); } else return false; //不是二叉排序树 } int max(BTree p){ //求二叉树左子树的最大值 if(p==null)return—maxint; //返回机器最小整数 else{ while(p一>rlink!=null)P=p一>rlink; return p一>data; } } int min(BTree p){ //求二叉树右子树的最小值 if(P==null)return maxint; //返回机器最大整数 else{ while(p一>llink !=null)p=p一>rlink; return p一>data; } }
解析
转载请注明原文地址:https://kaotiyun.com/show/Q0Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
列宁称马克思、恩格斯是“19世纪人类三个最先进国家中三种主要思潮的继承人和天才的完成者”。这里“三个最先进国家”指的是()。
(1)根据无类IP地址的规则,每个网段中有两个地址是不分配的:主机号全0表示网络地址,主机号全1表示广播地址。因此8位主机号所能表示的主机数就是28-2,即254台。该网络要划分为两个子网,每个子网要120台主机,因此主机位数X应该满足下面三个条件:
以下()协议完成了从网卡到IP地址的映射。
在请求页式系统中,一程序的页面走向(访问串或引用串)为2,3,4,5,2,3,6,2,3,4,5,6,设分配给该程序的存储块数为m。试分别计算m=3和m=4时,FIFO和LRU两种替换算法的缺页(页故障)数,并给出:结果说明了什么?
若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。(1)先来先服务算法;(2)最短寻找时间
序列的“中值记录”指的是:如果将此序列排序后,它是第n/2个记录。试写出一个求中值记录的算法。
设一段正文由字符集{A,B,C,D,E,F)中的字母组成,这6个字母在正文中出现的次数分别为{12,18,26,6,4,34)。(1)为这6个编码设计哈夫曼编码。(2)设每个字节由8位二进制位组成,试计算按哈夫曼编码压缩存储这段正文共需多少个字
如图所示一台路由器连接3个以太网。请根据图中给出的参数回答如下问题:(1)该TCP/IP网络使用的是哪一类IP地址?(2)写出该网络划分子网后所采用的子网掩码。(3)系统管理员将计算机D和E按照图中所示结构连入网络并使用所分配的地址对TC
大部分文件系统以硬盘作为文件存储器。某一个文件系统中,其磁盘物理块的大小为512B,有一个文件,包含了590个逻辑记录,每个记录占255B;其中,为检索方便,采用成组法存储,在每个物理块上只存放2个记录。,文件A在该文件目录中的位置如下图所示。
随机试题
简述辛亥革命以后,南京临时政府对文书工作进行的改革。
市场需求预测的方法有:(1)__________。(2)__________。(3)__________。(4)__________。(5)__________。(6)__________。(7)__________。
交叉弹性可以是正值,也可以是负值。如为正值,则此两项产品为_________;相反,如果交叉弹性为负值,则此两项产品为互补品,也就是说,当产品Y的价格上涨时,产品X的需求量会下降。
直肠癌多见于()
下列主体中,应当向持票人承担票据责任的有()。
创新教育是以()为基本价值取向的教育。
关于《荷马史涛》的叙述不正确的是()。
下列不是实时操作系统的是()。
Marshaconfessedthatsheknewnothingofcomputer.
DoesthepublisherofDouglasStarr’sexcellentBlood—AnEpicHistoryofMedicineandCommerceactuallyexpecttosellmanycopi
最新回复
(
0
)