重要提示:请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
首页 > 大学专科
网友您好,请在下方输入框内输入要搜索的题目:
搜题
拍照、语音搜题,请扫码下载APP
扫一扫 下载APP
题目内容 (请给出正确答案)
[主观题]

通常的二叉搜索树,都假定搜索是根据树中各结点的同一种关键码进行的。现在,我们需要根据两种不

同的关键码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。

答案
查看答案
更多“通常的二叉搜索树,都假定搜索是根据树中各结点的同一种关键码进行的。现在,我们需要根据两种不”相关的问题

第1题

设有一个关键码的输入序列(55,31,11,37,46,73,63,02,07):(1)从空树开始构造平衡二叉搜索树,画
设有一个关键码的输入序列(55,31,11,37,46,73,63,02,07):(1)从空树开始构造平衡二叉搜索树,画

设有一个关键码的输入序列(55,31,11,37,46,73,63,02,07):

(1)从空树开始构造平衡二叉搜索树,画出每加入一个新结点时二叉树的形态。若发生不平衡,指明需进行的平衡旋转的类型及平衡旋转的结果

(2)计算该平衡二叉搜索树在等概率下的搜索成功的平均搜索长度和搜索不成功的平均搜索长度。

点击查看答案

第2题

已知一组递增有序的关键码k[n]:k[0]≤k[1]≤…≤k[n-1],在相等搜索概率的情况下,若要生成一棵二叉
搜索树,以哪个关键码值为根结点,按什么方式生成二叉搜索树平衡性最好且方法又简单?阐明算法思路,写出相应的算法。如果k[11]为:7,12,13,15,21,33,38,41,49,55,58。按上面算法画出这棵二叉搜索树。

点击查看答案

第3题

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

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

点击查看答案

第4题

假设二叉树存放于二叉链表中,树中结点的关键码互不相同。试编写一个算法,判别给定的二叉树是否为二叉搜索树。

点击查看答案

第5题

在一棵二叉树中,任一结点的关键码值都大于它的(如果存在)左子女结点的关键码值,且小于它的右子女结点(如果存在)的关键码值,则此二叉树一定是二叉搜索树。()
在一棵二叉树中,任一结点的关键码值都大于它的(如果存在)左子女结点的关键码值,且小于它的右子女结点(如果存在)的关键码值,则此二叉树一定是二叉搜索树。()

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

点击查看答案

第6题

编写一个算法,判定给定的关键码值序列(假定关键码值互不相同)是否是二叉搜索树的搜索序列。若是则函数返回1,否则返回0。
编写一个算法,判定给定的关键码值序列(假定关键码值互不相同)是否是二叉搜索树的搜索序列。若是则函数返回1,否则返回0。

点击查看答案

第7题

设在一棵二叉搜索树的每个结点中,含有关键码key域和统计相同关键码结点个数的count域,当向该
树插入一个元素时,若树中已存在与该元素的关键码柑同的结点,则就使该结点的count域增1,否则就由该元素生成一个新结点而插入到树中,并使其count域置为1,试按照这种插入要求编写一个算法。

点击查看答案

第8题

将(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'相同?

点击查看答案

第9题

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

点击查看答案

第10题

从一棵高度为h的B树中删除一个已有的关键码,假定内存空间足够大,可以把搜索被删关键码所在结
点而读入的结点都保存在内存中。最坏情况下从下向上,一直到根都要进行结点的合并,那么在这种情况下需要读写()次磁盘。

A、h+l

B、2h-1

C、3h-2

D、4h-3

点击查看答案
下载APP
关注公众号
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案 购买前请仔细阅读《购买须知》
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《服务协议》《购买须知》
立即支付 系统将自动为您注册账号
已付款,但不能查看答案,请点这里登录即可>>>
请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
请用微信扫码测试
优题宝