首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-01-16
74
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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://www.kaotiyun.com/show/llRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
在下列各项中,不属于列宁《四月提纲》内容的是()。
简述中共八大的内容以及主要历史功绩。
试述北伐战争的过程以及胜利的原因。
秦统一过程中,最先和最后灭掉的国家是()。
在巴黎和会上,法国要求严厉制裁德国的目的是()。
下列对近代社会思潮产生的先后顺序排列正确的是()。①人文主义②自由主义③理性主义④重商主义
下列历史事件发生的先后顺序是()。①“铁幕”演说②马歇尔计划③北大西洋公约
武则天时期,为了管理天山以北的广大区域而设立了()。
并发使得处理机的利用率得到提高,其主要原因是处理机与IO可以同时为多个进程服务,也即处理机与IO设备真正地并行。但是处理机的利用率提高并不是简单地将两个进程的处理机利用率相加,而是遵循一定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用
设某计算机有四级中断A、B、C、D,其硬件排队优先级次序为A>B>C>D。下表列出了执行每级中断服务程序所需的时间。如果以执行中断服务程序的时间作为确定中断优先级的尺度:时间越短优先级越高。(1)请指出如何为各级中断服务程序设置屏蔽码?
随机试题
隐性课程与显性课程是相伴随的关系,它的影响可能是积极的也可能是消极的。()
计算机系统的发展呈现出的特点不包括()
在DNA和RNA组成中都存在的成分是
A.遮光剂B.增塑剂C.矫味剂D.防腐剂E.增加胶冻力空胶囊中加入甘油是作为()。
脊麻时,局麻药中加入麻黄碱的主要目的是
被执行人全部缴纳土地使用权出让金但尚未办理土地使用权登记的,人民法院可以对该土地使用权进行()。
烟花爆竹生产企业的生产设施应当符合的要求中,C级建筑物的人均使用面积不得小于()m2。
旅游业是产业革命和近代旅游发展的产物。()
设A=[6*8-2]、B=6*8-2、C=”6*8-2”属于合法表达式的是()
TheGreatestMysteryofWhalesThewhaleisawarm-blooded,air-breathinganimal,givingbirthtoitsyoungalive,suckingt
最新回复
(
0
)