完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
二叉树的删除操作主要是寻找替代点来进行替换操作。方法:先右转,再一直左转,直到左连接为空的那个点。
然后,摘取出来,完成链接指向操作。 public void deletmin(void) { root = deletmin(root); } private node deletmin(node x) //摘取代替节点的操作 { if(x.left == NULL) return x.right; x.left = deletmin(x.left); return x; } private node min(node x) //得到替代节点 { if(x.left == NULL) return x; return min(x.left); } public void delet(int key) { root = delet(root,key); } private node delet(node x,int key) { if(x == NULL) return NULL; //递归出口 if(key < x.key) x.left = delet(x.left,key); else if(key > x.key) x.right = delet(x.right,key); else { if(x.left == NULL) return x.right; //左空,接右子 if(x.right == NULL) return x.left; //右空接左子 //左右都不空 node temp = x; x = min(temp.right); //找到替代点 x.right = deletmin(temp.right); //摘取替代点操作 x.left = temp.left; //替代操作 } return x; } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
553个成员聚集在这个小组
加入小组12207 浏览 2 评论
4526 浏览 3 评论
3773 浏览 5 评论
9846 浏览 47 评论
4619 浏览 9 评论
786浏览 0评论
598浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 11:10 , Processed in 0.537037 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号