首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
admin
2019-08-01
57
问题
二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。
选项
答案
在二叉排序树上删除结点,首先要查找该结点。查找成功后,若该结点无左子树,则可直接将其右子树的根结点接到其双亲结点上;若该结点有左子树,则将其左子树中按中序遍历的最后一个结点代替该结点,从而不增加树的高度。 void Delete(BSrIIree 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->rehild; } 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/z3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述屋大维的元首政制的统治特点。
国民党政府宣布民盟为“非法团体”,民盟总部被迫解散的时间是()。
严复翻译的《天演论》一书的出版时间是()。
国共十年对峙时期,中国的经济特点包括()。①帝国主义加紧了对中国的经济侵略②民族资本主义经济有了显著发展③官僚资本迅速形成④新民主主义经济有了一定的发展
下列各组条约的时间排列顺序正确的是()。①《布列斯特条约》②《色佛尔条约》③《九国公约》④《洛桑条约》
两极格局结束后,世界形势发展的总态势的基本特点()
下列各种情况中,应采用异步通信方式的是()。
一个使用选择性重传协议的数据链路层协议,如果采用了5位的帧序列号,那么可以选用的最大窗口是()。
举例说明P、V操作为什么要求设计成原语(即对同一信号量上的操作必须互斥)。P(S)操作:S.value--;If(S.value<0){AddthisprocesstoS.L;Block();
随机试题
在Excel2003中,如果筛选条件涉及多个字段的“或”运算,则通过自动筛选无法实现,只能使用高级筛选。()
男性,62岁,患食管癌入院后经左胸行食管癌切除弓上吻合术,术后第2天起,胸腔引流管引流液呈淡血性,量为每天600~1000ml,体温基本正常,但患者胸闷、气急、神萎。摄床旁胸片示:左胸腔大量积液。此时,临床医师最应注意的临床生化指标是
A.晚上服用脂溶性药物药物疗效高B.抗高血压药大多需清晨给药C.晚8时吲哚美辛血中去甲基吲哚美辛含量最高D.凌晨血浆中游离型苯妥英含量最高E.环磷酰胺或氮芥冬季给药(致畸性最弱)(机体节律性对药动学的影响)机体节律性影响代谢的例子是
1982年开始实行补贴出售试点,即政府、单位、个人各负担房价的1/3。先后在四市进行试点,下列不属于四市之列的是()。
提出项目概念和构思,目的和要求属于()的任务分工。
根据《建设工程工程量清单计价规范》的规定,关于幕墙工程量的计算,下列说法中不正确的是()。
银行公司信贷产品市场定位的步骤中,首先是()。
试述班杜拉的社会学习理论以及它对教学的启示。
[*]
计算所围成的区域.
最新回复
(
0
)