首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
92
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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://www.kaotiyun.com/show/6VCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
记载了用竿标日测影以求日高的方法,并认识了勾股定理的算书是()。
巴黎和会上,英美主张把原德国在山东的权利转让给日本,华盛顿会议又表示支持中国让日本归还山东的要求,英美态度发生变化的根本原因是()。
论述1935年到1937年中国共产党方针政策的转变,并分析其对中国共产党发展的历史意义。
论述世界反法西斯联盟形成的过程。
制瓷业是光彩夺目的一个手工业部门,北宋的制瓷业的重心在黄河流域和中原地区。回答问题:北宋的四大名窑是()
基督教产生的时间是()。
某路由器的IP地址是125.45.23.12,它在以太网上的物理地址为2345AB4F67CD,它收到了一个分组,分组中的目的IP地址是125.11.78.10。(1)试给出这个路由器发出的ARP请求分组中的各项目。假定不划分子网。
驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
进程由就绪态转换为运行态是由()引起的。
随机试题
抗日战争胜利后正式成立的民主党派有()
以下除哪项外,均为黄柏的适应证
肺部CT图像拍摄时,对于窗的基本要求是
食品中有毒物质的限量标准,通常是根据()的基本原则来制定
A.乳糜微粒B.极低密度脂蛋白C.低密度脂蛋白D.高密度脂蛋白E.脂蛋白(α)电泳分离的CM对应
项目后评价的一般原则是()原则。
根据《中华人民共和国企业所得税法》的规定,依据外国法律法规成立,实际管理机构在中国境内的企业属于()。
心理发展内部矛盾产生的基础是()。
相对剩余价值的生产是通过
SustainableDevelopmentandGlobalizationSustainabledevelopmentisdefinedinOurCommonFuture,theReportofthe1987Wo
最新回复
(
0
)