首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-01-16
75
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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->lehild;} else{f=p;P=p一>rehild;} if(P==null){prinff(”无关键字为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->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://kaotiyun.com/show/llRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列城市:①南京②厦门③天津④杭州,按其在近代历史上开放为商埠的时间先后顺序排列应该是()
17世纪英国资产阶级革命中,曾利用了古老文件同专制王权作斗争。这一古老文件是()
下列不属于“一国两制”的基本内容的是()。
秦统一过程中,最先和最后灭掉的国家是()。
1923年纳粹党魁希特勒发动了“啤酒馆暴动”,对此叙述不正确的一项是()。
下列叙述不正确的是()。
下列长征事件的正确顺序是()。①四渡赤水②召开遵义会议③吴起镇会师④飞夺泸定桥
洋务派创办军事工业的方式是()。
20世纪50年代到70年代初,西欧国家通过有效的社会经济政策,维持了经济相对稳定和持续发展。这些政策主要包括()①加强对经济的宏观管理②废除生产关系中封建落后因素③发展高科技和新兴产业④进行社会改革,稳定社会
随机试题
不见于正常脑电图的波形是
下述有关糖异生途径关键酶的叙述中,哪一项是错误的
在配电设计中,通常采用()的最大平均负荷作为发热条件选择电器或导体的依据。
编译软件属于()。
()是指银行及非银行机构依照法定程序发行并约定在一定期限内还本付息的有价证券。
企业安置中华人民共和国残疾人员的,在按照支付给残疾职工工资据实扣除的基础上,按照支付给残疾职工工资的()加计扣除。
在对固定资产和累计折旧进行审计时,A注册会计师注意到:L公司于2003年12月31日对一条账面原值为1500万元,累计折旧为900万元的生产线计提减值准备200万元,该生产线折旧年限为10年,残值率为0,采用直线法计提折旧;由于钢材价格在2004年出现了
一、注意事项1.题目应在答题卡上作答,在题本上作答的一律无效。2.监考人员宣布考试开始时,你才可以开始答题。3.监考人员宣布考试结束时,你应立即停止作答,将题本、答题卡和草稿纸都翻过来留在桌上,待监考人员确认数量无误、允许离开后方可
以下资料,回答86-90题附注:净资产=资产-负债。2006年沃尔玛公司的营业额为:
试述牙颌面畸形(正颌外科)术后并发症及防治。
最新回复
(
0
)