采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,在平衡二叉树可以添加重复值的节点的条件下,好像不可以复用remove(node, value)方法
在这种情况下是否只能使用removeMin(),并且在removeMin()中添加维护平衡的代码?
是的。我的课程中的二分搜索树,平衡二叉树,都是基于set或者map的假设,其中的值(map中的键值)不允许有重复。如果有重复元素,需要额外的处理(即是multiset):)
印象里,在讲二分搜索树的时候,也相应的给大家留了这样一个思考问题,对于我们实现的二分搜索树,如何支持可以存储相同的元素,那么相应的,在AVL和红黑树的部分,有兴趣也可以思考同样的问题:)
你已经很精准的定位了问题,你需要保证在删除8的时候,找到的8的后继,是黄色的9,而不是绿色的9:)
P.S. 其实,在实践中,MultiSet并不是很有用,因为在需要存储重复元素的情况下,我们可以转而使用普通的Map,其中每一个键对应的值,即为这个键出现的次数。所以,在Java的标准库中,根本不提供MultiSet这样的一个数据结构!:)
加油!:)
谢谢老师!回复的好快!
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.6k 16
1.5k 17
1.4k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号