首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
87
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
选项
答案
在二叉排序树上删除结点,首先要查找该结点。查找成功后,若该结点无左子树,则可直接将其右子树的根结点接到其双亲结点上;若该结点有左子树,则将其左子树中按中序遍历的最后一个结点代替该结点,从而不增加树的高度。 void Delete(BSTree bst,keytype x){ //在二叉排序树bst上,删除其关键字为X的结点 BSTree f,p=bst: while(P&&p一>key!=X) //查找值为X的结点 if(p一>key>X){f=p;p=p一>lchild;} else{f=p;p=p一>rchild;} if(p==null){printf(“无关键字为X的结点\n”);exit(0);} if(p->lchild==null){ //被删结点无左子树 if(f一>lchild==p)f->lchild=p->rchild;//将被删结点的右子树接到其双亲上 else f->rchild=p->rchild; } else{q=p;s=p->lehild; //被删结点有左子树 while(s一>rchild!=null) //查左子树中最右下的结点(中序最后结点) {q=s;s=s一>rchild;} p一>key=s->key: //结点值用其左子树最右下的结点的值代替 if(q==p)p一>lchild=s->lchild; //被删结点左子树的根结点无右子女 else q一>rchild=s一>lchild; //s是被删结点左子树中序序列最后一个结点 free(s); } }
解析
转载请注明原文地址:https://kaotiyun.com/show/6VCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
唐朝时。从中国传到大食的手工技术是()。
明清时期专制主义空前加强,据此回答问题:以下关于明朝“废行省、设三司”的措施评价最正确的是()
乾隆时期,明确规定了驻藏大臣的地位与达赖班禅同等,并实行“金瓶掣签”制度的文件是()。
在太平天国时期,对晚清兵制以及政局产生深远影响的是()。
下列哪一项不是毛泽东在抗日战争期间的著作?()
罗马在应用科学尤其是农艺学方面取得了较高的成就,其中《论农业》是研究罗马帝国初期奴隶制经济不可多得的历史文献,《论农业》的作者是()。
斯塔夫里阿诺斯在他的《全球通史》中说:“……促成中国文明的内聚性的最重要因素,也许是通称为儒家学说的道德准则和文学、思想方面的文化遗产。”这里的“儒家学说的道德准则”是()。
日本三个月亡华计划破产的标志是()。
若某浮点机基数为4,尾数采用补码表示,则该浮点机的规格化尾数形式为()。
设一个字符串除字符串结束符之外,共包含n(n>1)个字符,设计一个在时间和空间两方面尽可能高效的算法,在这个字符串中找到第一个只出现一次的字符。例如字符串为abcdabd,则输出c。要求:说明你所设计算法的时间复杂度与空间复杂度。
随机试题
当采用()电渣焊时,为适应厚板焊接,焊丝可作横向摆动。
《公证员职业道德基本准则》的制定时间为
疲劳是指
昏迷是由于影响中枢神经系统的
某上市化学药品原是盐酸根,因其口感不佳,改为枸橼酸根后,按注册法规要求,应属于
中国工程咨询协会经国家民政部批准,于()年底正式成立。
文字是文化的基本载体,汉字这种独具特色的“方块字”为传承中华文明发挥了巨大作用。由此可见()。
破釜沉舟:项羽
两个平行的测验测量同一批被试所得结果的一致性程度是
LearningFromInformalCities,BuildingforCommunitiesWhatiftherewereabetterwayofliving?Awaythatwasmoreenvir
最新回复
(
0
)