首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
25
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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://kaotiyun.com/show/I3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述王莽改制的内容并分析失败的原因。
在西欧列强海外殖民扩张进程中,各国之间相互争夺海上霸权。18世纪末,英国在争霸中取得胜利的根本原因在于()
东欧剧变的根本原因是()。
一战后,法国对外政策的特点是()。
完整地表述电磁场理论的物理学家是()。
在下列四本部书中有可能记载“甘薯所在,局面便有半年之粮,民间渐次广种”一语的只能是()。
在平衡二叉树中的每个结点上增设一个Lsize域,其值为它的左子树中的结点个数加1,试写一个时间复杂度为O(logn)的算法,确定树中第k个结点的位置。
设有m个连续单元供一个栈与队列使用,且栈与队列的实际占用单元数事先不知道,但是要求在任何时刻它们占用的单元数量不超过m,试写出上述栈与队列的插入算法。
在网络中计算机接收的信号是()。
计算机系统中,判断是否有中断事件发生的时机是()。
随机试题
A、WhenhewasskatingintheFrenchAlps.B、WhenhewasskatingintheGermanAlps.C、WhenhewasskiingintheFrenchAlps.D、W
自动空气开关集________和________于一身,除能完成________和________电路外,尚能对电路或电气设备发生的________、________及________等进行保护。
主要合成和分泌糖皮质激素的部位是
[1997年第143题]居住区的规划布局,应遵循下列哪几项原则:
国际法的渊源主要是国际条约和()。
下列税种中,征税对象与计税依据不一致的是( )。
下列关于保护客户隐私的说法不正确的是( )。
解释技术的正确做法是()。
光污染泛指影响自然环境,对人类正常生活、工作、休息和娱乐带来不利影响,损害人们观察物体的能力,引起人体不舒适感和损害人体健康的各种光。按国际上光污染的分类,下列不属于光污染的是()。
请根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)。在名称为Forml的窗体上画一个名称为Labell、标题为”列表框的使用”的标签。再画一个名称为Listl的列表框,列表中含有5个表项,表项内容分别为”北京”、“山西”、”
最新回复
(
0
)