首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
63
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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一>lehild=P一>rchild;//将被删结点的右子树接到其双亲上 else f一>rchild=p一>rehild; } else{q=P;s=p一>lehild; //被删结点有左子树 while(S->rehild!=null) //查左子树中最右下的结点(中序最后结点) {q=s;s=s一>rehild;} P一>key=s一>key; //结点值用其左子树最右下的结点的值代替 if(q==P)P一>lchild=s一>lchild; //被删结点左子树的根结点无右子女 else q一>rchild=s一>lchild; //s是被删结点左子树中序序列最后一个结点 free(s); } }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/I3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
东欧剧变的根本原因是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
中国第一个资产阶级革命团体兴中会建立的时间是()。
下列法律文件中,规定内阁对君主负责的是()。
古埃及第24朝法老波克利斯进行改革,宣布废除奴隶制,债权人只能索取债务人的财产作抵偿,而不能占有债务人的人身,因为财产属于个人,而公民人身属于国家,国家需要他们服役。该改革旨在
基督教产生的时间是()。
某32位机(机器字长32位)的一台外设通过32位总线与系统内存相连。CPU每秒执行100条指令,平均每条指令需要5个机器周期,其中3个周期必须访问内存,内存读写需一个机器周期,假定CPU在95%的时间内持续执行“背景程序”,且这段时间内不执行I/O指令。现
在网络中计算机接收的信号是()。
若线性表最常用的运算是查找第i个元素及其前驱的值,则采用()存储方式节省时间。
出现下列的情况可能导致死锁的是()。
随机试题
邓小平首次提出“建设有中国特色的社会主义”命题是在党的()
肺换气的过程是指
行政机关滥用职权作出准予行政许可决定的,有权机关可以依法________。
某市中级人民法院对孙某盗窃一案按照审判监督程序重新审理后,发现原一审生效判决认定事实正确,但适用法律不当,正确的做法是()
我国为何要保证加工贸易物资的进口?
一般来说每个国家都有自己的预算年度,即在一定的时间界度内,全面反映该年度的财政收支活动。但是各国预算年度的起止日期并不一样。我国预算年度起止期限是()。
下列不属于网页浏览器的是()。
(2012年广东.77)每逢开学,各大书店总有不少家长拿着老师开列的书单为孩子买辅导书,然而有时却不容易买到。尽管有些辅导书内容上大同小异,但不同的版本却往往让家长不放心,让老师不满意。其实,家长和老师们都有点庸人自扰了。辅导书是买给孩子用的,应该多和孩子
若有函数首部intfun(doublex[10],int*n),则下列针对此函数的函数声明语句中正确的是()。
WhyismostPalestinians’economicsituationworsening?
最新回复
(
0
)