首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-01-16
62
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是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://kaotiyun.com/show/llRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述秦国商鞅变法的内容、过程以及重要意义。
阅读材料,回答以下问题:一、大清帝国之皇统,万世不易。二、皇帝神圣,不可侵犯。三、皇帝权以宪法规定为限。四、皇帝继承之顺序,于宪法规定之。五、宪法由资政院起草议决,皇帝颁布之。六、宪政改正提案权,属于国会。七、上院议员,由国民于法定特别资格公选之。八、总
美国首次提出争夺世界霸权的纲领性文件是()。
美国历史上第一个具有宪法性质的文件是()。
试述西欧城市兴起的原因、方式及其影响。
下列长征事件的正确顺序是()。①四渡赤水②召开遵义会议③吴起镇会师④飞夺泸定桥
列宁在《四月提纲》中指出,俄国的革命任务是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
设某计算机有四级中断A、B、C、D,其硬件排队优先级次序为A>B>C>D。下表列出了执行每级中断服务程序所需的时间。如果以执行中断服务程序的时间作为确定中断优先级的尺度:时间越短优先级越高。(1)请指出如何为各级中断服务程序设置屏蔽码?
随机试题
()是决定当代中国命运的关键抉择,是党和人民事业大踏步赶上时代的重要法宝。
目前我国的家长学校工作由()共同牵头进行指导管理。
根据我国《刑法》第338条的规定,构成污染环境罪,后果特别严重的【】
下列疾病中通过骨髓涂片细胞形态学检查不能确诊的是
客户下达的交易指令数量和买卖方向明确,下列说法正确的是()。
【2015农业银行】Ithink$7foradrinkisabitsteep,don’tyou?
有的人善于写作,有的人善于推理,有的人善于运算,这说明人的心理发展具有()。
A、 B、 C、 D、 D每个图比前一个图多一横一竖。
三十六计是根据我国古代卓越的军事思想和丰富的斗争经验总结出来的三十六条谋略,在我国军事史上得到了充分的验证。下列战役中成功运用三十六计中以逸待劳之计的是:
Thestudyofhowsoundsareputtogetherandusedtoconveymeaningincommunicationis______.
最新回复
(
0
)