首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
42
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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://jikaoti.com/ti/kDGjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
东欧剧变的根本原因是()。
下列明末清初来华传教士,按时间顺序排列,正确的是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
古埃及第24朝法老波克利斯进行改革,宣布废除奴隶制,债权人只能索取债务人的财产作抵偿,而不能占有债务人的人身,因为财产属于个人,而公民人身属于国家,国家需要他们服役。该改革旨在
庆历新政是统治集团内部为了改革弊病而进行的一次努力。回答问题:范仲淹在()中提出了具体的改革方案。
《中国国民党改组宣言》发表的时间是()。
试编写一个非递归算法,实现求以二叉链表存储的二叉树中q结点的祖先。
ICMP在TCP/IP协议集中属于()。
某机字长32位,主存容量32MB,按字节编址;该机的Cache采用4路组相联映射方式,Cache容量为16KB,块长为4个字,试回答下列问题:(1)主存地址位数为多少?(2)画出主存地址格式示意图,注明各字段名称及位数。(3)设该Ca
判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用的是()。
随机试题
消化管狭窄或闭锁的成因主要是()
优质X线照片不能显示的是
砌筑用砂浆的配合比应采用()。
以下说法错误的是()。
It is said that a new policy is being put( )practice in your foreign trade.
下列关于监察稽核控制的说法,不正确的是()。
在下列四种情形中,人民法院应当为被告人指定辩护人的是( )。
(2016年)20世纪90年代,兰微公司在C国推出微波炉产品。兰微公司充分利用市场对微波炉产品价格的高度敏感,通过集中生产少数品种、规模经济,减少各种要素成本、提高生产效率、不断改进产品工艺设计、承接外包等多种手段降低成本,以“价格战”不断摧毁竞争对手的防
不含肌上皮细胞的唾液腺恶性肿瘤是()。
ThereiseveryevidencetoshowthatthepriceofflatsinShanghai______from10to15duringthelastmonth.
最新回复
(
0
)