首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
58
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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
学硕统考专业
相关试题推荐
16世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
国民党政府宣布民盟为“非法团体”,民盟总部被迫解散的时间是()。
北大西洋公约组织
在欧美资产阶级革命时代,最能体现出资产阶级革命要求的文献是()。
基督教产生的时间是()。
严复翻译的《天演论》一书的出版时间是()。
某定点机字长8位(含1位符号位),现该机中一个寄存器的内容为43H,则将其算术左移一位、算术右移一位的结果分别为()。
某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是()。
在协议数据单元中,控制信息所不包括的内容是()。
随机试题
()泛指那些专门用于解决各种具体应用问题的软件或程序。
在Windows中要播放CD唱盘,可用______工具。
风疹邪郁在表证的用方是风疹邪毒内盛证的用方是
牡蛎散功专止汗的药物是
建设工程竣工验收合格后,()应当及时提出工程竣工验收报告。
工程所在区域未开展规划环境影响评价的,需进行()。
下列诸项是关于海关对某些特殊进口货物完税价格审定的叙述,其中正确的有______。
会计师事务所应当针对审计工作底稿设计和实施适当的控制。下列各项中,通常不属于控制目的的是()。
纳木错被称为“天湖”,位于西藏中部,为世界上海拔最高的大型湖泊,也是中国第二大咸水湖。()
知识分子流落江湖,应当是不得已而为之的。由古至今,知识分子大都希望用自己所掌握的各种知识,为江山社稷出一份力。如春秋时期的苏秦、张仪,三国时期的诸葛亮、徐庶.等等。但能够成为人中“翘楚”的毕竟是少数,就算李白这样的大文豪,一生中绝大部分时间却是浪迹江湖,不
最新回复
(
0
)