首页 > 英语四级
题目内容 (请给出正确答案)
[主观题]

在二叉搜索树中,任一结点所具有的关键码值都大于它的左子女(如果存在)的关键码值,同时小于其右子女(如果存在)的关键码值。()

在二叉搜索树中,任一结点所具有的关键码值都大于它的左子女(如果存在)的关键码值,同时小于其右子女(如果存在)的关键码值。()

此题为判断题(对,错)。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“在二叉搜索树中,任一结点所具有的关键码值都大于它的左子女(如…”相关的问题
第1题
通常的二叉搜索树,都假定搜索是根据树中各结点的同一种关键码进行的。现在,我们需要根据两种不
同的关键码keyl和key2进行搜索。

解决问题的一种方法是使用2-d树。2-d树类似于二叉搜索树,不同之处在于:

◇偶数层用keyl来比较:在该层上每一结点的keyl都大于共左子树中任一结点的key1,都不大于其右子树中任一结点的keyl。

◇奇数层用key2来比较:在该层上每一结点的key2都大于其左子树中任一结点的key2,都不大于其右子树中任一结点的key2.

◇树的根结点处于第0层。每次插入或搜索都从根结点出发,逐层比较。新结点应作为叶结点插入,

臂如,可以将不同人的姓和名(假设没有同名同姓者)分别为keyl和key2,建立一棵2-d树.作为例子,图7-27就是将清华大学的历任校长,按共任职年代的先后次序(周白齐、唐国安、周春、金邦正、曹云祥、严鹤龄、罗家伦、梅贻琦、叶企孙、蒋南翔、高景德、张孝文、王大中、顾秉林),顺序插人而形成的一棵2-d树。

(1)若命名树结点的类名为kdTNode,树的类名为kdTrce,关键码keyl的数据类型为T1,关键码key2的数据类型为T2,试写出2-d树的模板类结构定义,包括构造函数、复制构造函数、求树高、按给定值搜索、查找左子女、查找右子女、查找父结点、插人、删除等函数。此外,还要定义对树结点私有数据成员的存取函数(只要求写出函数的原型,不必给出代码实现)。

(2)基于上述定义,写出其中一个成员函数的实现代码:从根开始搜索关键码keyl和

key2与给定值vall和val2匹配的结点。函数的形式为:

若搜索成功,则函数返回true值,同时引用参数pt指向搜索到的结点,另引用参数pr指向结点*pt的父结点。此时,若树中只有一个结点,pr为NULL。

若搜索不成功或树为空,则函数返回false值,同时参数pt为NULL,在树非空时,pr则指向搜索失败前指针pt最后到达的结点;当树为空时,pr为NULL。

点击查看答案
第2题
设二叉搜索树中的关键码互不相同,则其中的最小元素必无左子女,最大元素必无右子女,此命题是否正确?最小元素和最大元素一定是叶结点?一个新元素总是作为叶结点插入二叉搜索树吗?

点击查看答案
第3题
在关键码值随机分布的情况下,用二叉搜索树的方法进行搜索,其搜索长度与()量级相同。
在关键码值随机分布的情况下,用二叉搜索树的方法进行搜索,其搜索长度与()量级相同。

A、顺序搜索

B、折半搜索

C、前两者都不正确

点击查看答案
第4题
将(for,case,while,class,proteeted,virtual,public,do,template,const,if,int)中的关键码依次
将(for,case,while,class,proteeted,virtual,public,do,template,const,if,int)中的关键码依次

插入初始为空的二叉搜索树中,请画出所得到的树T。然后画出删除for之后的二叉搜索树T',若再将for插人T'中得到的二叉搜索树T''是否与T'相同?

点击查看答案
第5题
试用判定树的方法给出在中序线索二叉树上:(1)如何搜索指定结点的在中序下的后继。(2)如何搜索指定结点的在前序下的后继。(3)如何搜索指定结点的在后序下的后继。
试用判定树的方法给出在中序线索二叉树上:(1)如何搜索指定结点的在中序下的后继。(2)如何搜索指定结点的在前序下的后继。(3)如何搜索指定结点的在后序下的后继。

点击查看答案
第6题
在最优二叉搜索树问题中,定义e[i,j]为ki,kj的最优二叉查找树的期望搜索成本,而我们需要通过寻优来确定最优二叉查找树的根结点的下标r,则r的取值范围为()。

A.i≤r≤j

B.i

C.i≤r

D.i

点击查看答案
第7题
有n个结点的二叉搜索树具有多少种不同形态?

点击查看答案
第8题
所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具

所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具体地,这里的查询区域是某一侧无界的广义矩形区域,比如R=[-1,+1]x[0,﹢∞),即是对称地包含正半y坐标轴、宽度为2的一个广义矩形区域,当然,对查询的语义功能要求依然不变——从某一相对固定的点集中,找出落在任意指定区域R内部的所有点。

范围树(176页习题[8-20])稍作调整之后,固然也可交持半无穷范围查询,但若能针对这一特定问题所固有的性质,改用优先级搜索树(priority search tree,PST)之类的数据结构,则不仅可以保持O(r+logn)的最优时间效率,而且更重要的是,可以将空间复杂度从范围树的O(nlogn)优化至O(n)。

如图x10.3所示,优先级搜索树除了首先在拓扑上应是一棵二叉树,还同时遵守以下三条规则。

①首先,各节点的y坐标均不小于其左右孩子(如果存在)——因此,整体上可以视作为以y坐标为优先级的二叉堆。

②此外,相对于任一父节点,左子树中节点的x坐标均不得大于右子树中的节点。

③最后,互为兄弟的每一对左、右子树,在规模上相差不得超过一。

a)试按照以上描述,用C/C++定义并实现优先级搜索树结构;

b)试设计一个算法,在O(nlogn)时间内将平面上的n个点组织为一棵优先级搜索树;

c)试设计一个算法,利用已创建的优先级搜索树,在O(r+logn)时间内完成每次半无穷范围查询,其中r为实际命中并被报告的点数。

点击查看答案
第9题
试证明:a)按照二叉搜索树的基本算法在AVL树中引入一个节点后,失衡的节点可能多达Ω(logn)个;b)按照二叉搜索树的基本算法从AVL树中摘除一个节点后,失衡的节点至多1个。

点击查看答案
第10题
在最优二叉搜索树问题中,我们的优化目标是()。

A.只经过最少次数的比较就可以找到概率最大的元素

B.经过最多次数的比较就可以找到概率最小的元素

C.找到每个元素所需要的平均比较次数为最小

D.元素搜索代价的数学期望为最小

点击查看答案
第11题
范围查询的另一解法需要借助范围树(range tree)。为此,首先仿照如图8.37(教材240页)和图8.38(教

范围查询的另一解法需要借助范围树(range tree)。

为此,首先仿照如图8.37(教材240页)和图8.38(教材241页)所示的策略,按x坐标将平面上所有输入点组织为一棵平衡二叉搜索树,称作主树(main tree)。

于是如图x8.10(a)和(b)所示,该树中每个节点各自对应于一个竖直的条带区域;左、右孩子所对应的条带互不重叠,均由父节点所对应的条带垂直平分而得;同一深度上所有节点所对应的条带也互不重叠,而且它们合并后恰好覆盖整个平面。

接下来,分别对于主树中每一节点,将落在其所对应条带区域中的输入点视作一个输入子集,并同样采用以上方法,按照y坐标将各个子集组织为一棵平衡二叉搜索树,它们称作关联树(associative tree)。于是如图x8.10(a)和(c)所示,每棵关联树所对应的竖直条带,都会进而逐层细分为多个矩形区域,且这些矩形区域也同样具有以上所列主树中各节点所对应条带区域的性质,至此,主树与这o(n)棵关联树构成了一个两层的嵌套结构,即所谓的范围树。

利用范围树,可按如下思路实现高效的范围查询,对于任一查询范围R=[x1,x2]×[y1,y2],首先按照[x1,x2]对主树做一次×方向的范围查询。根据8.4.1节的分析结论,如此可以得到o(logn)个节点,而且如x8.10(b)所示,它们所对应的竖直条带互不重叠,它们合并后恰好覆盖了x坐标落在[x1,x2]范围内的所有输入点。

接下来,深入这些节点各自对应的关联树,分别按照[y1,y2]做一次y方向的范围查询。如此从每棵关联树中取出的一系列节点,也具有与以上取自主树的节点的类似性质,具体地如图x8.10(c)所示,这些节点所对应的矩形区域互不重叠,且它们合并之后恰好覆盖了当前竖直条带内y坐标落在[y1,y2]范围内的所有输入点。换而言之,这些点合并之后将给出落在R中的所有点,既无重也不漏。

a)试证明,如此实现的范围树,空间复杂度为o(nlogn);

b)按照以上描述,试利用你的范围树实现新的范围查询算法;

c)试证明,以上范围查询算法的时间复杂度为O(r+log2n),其中r为实际命中并被报告的点数;

d)继续改进以上范围树,在不增加空间复杂度的前提下,将查询时间减至O(r+logn)。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改