首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
34
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
选项
答案
在二叉排序树上删除结点,首先要查找该结点。查找成功后,若该结点无左子树,则可直接将其右子树的根结点接到其双亲结点上;若该结点有左子树,则将其左子树中按中序遍历的最后一个结点代替该结点,从而不增加树的高度。 void Delete(BSrIIree 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->rehild; } else{q=P;S=P->lchild; //被删结点有左子树 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://jikaoti.com/ti/eDGjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
试述“百家争鸣”的社会背景及主要原因。
清廷实行厘金制度的时间是()。
论述屋大维的元首政制的统治特点。
()是二战后一个调整各国贸易关系的法律框架,又是一个进行多边贸易谈判、争夺市场的场所,还是一个调解和解决争议的机构。
国共十年对峙时期,中国的经济特点包括()。①帝国主义加紧了对中国的经济侵略②民族资本主义经济有了显著发展③官僚资本迅速形成④新民主主义经济有了一定的发展
1962,中共中央调整计划目标,工业生产值原定950亿元调为880亿元,钢产量755万吨调为600万吨,并按“经济合理,保留骨干的原则,对企业关停并转。这举措目标
()是清代管理边疆少数民族地区事务的机关,也掌管一部分外交事务。
提出电磁感应定律的是物理学家()。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
下面输入一个很诡异的链表,暂时称它为“变异链表”,如图4—3所示。从图中可以看出此链表的尾部形成了一个环,请实现一个时间和空间上尽可能高效率的算法来判断输入的链表是否为“变异链表”,要求:给出算法的基本设计思想。
随机试题
土路肩一般情况用()填筑。
系统数学模型的建立可以采用哪些方法?
三因学说中的三因源于()
平面力系不平衡,其简化的最后结果为()。
某养老院共六层,建筑高度为26m,每层建筑面积为2000m2,对该养老院的下列防火检测结果中,不符合现行国家标准要求的是()。
货币政策和财政政策的区别在于()。
对购买首套自住房且套型建筑面积在90平方米以上的家庭,贷款首付款比例不得低于()。
一般工业企业缴纳的各种税金中,可能通过“营业税金及附加”科目核算的有( )。下列各项收入中,属于工业企业的其他业务收入的有( )。
意大利的那不勒斯城附近有个石灰岩洞,人们带着牛马等大牲畜通过岩洞未发生问题,但是猫、老鼠等小动物走进洞里就倒地而死。后来人们经过检验发现,小动物的死亡与吸进大量二氧化碳有关。据此,可以推断出()
下列各种存储管理方案中,可“扩充”内存容量的方案是()。
最新回复
(
0
)