如果在二叉树中插入一个已经在二叉树中存在的元素该怎么处理
我好像百度没有遇到这样的情况,比如二叉树里有一个45,我再插入45该怎么处理?不知道这个问题是不是太二,望大神赐教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我好像百度没有遇到这样的情况,比如二叉树里有一个45,我再插入45该怎么处理?不知道这个问题是不是太二,望大神赐教
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
如果你指的是BST的话,遇到重复的元素时,不用管它(或者抛出异常、返回错误等)。许多算法书上都假设没有重复的key值,因为要实现有重复的是非常繁琐的。
插入实现
当然,你也可以允许重复元的插入,如果定义
left <= root < right
,并拥有下面的树:插入
3
会得到:注意重复的元素不在相邻的层次上,并且树的深度会变得很大,判断重复元是否存在将会变得很困难。一个比较好的选择是通过在节点记录中保留一个附加的域来指示重复元的个数,先前的例子将会变成:
插入
3
之后:这种方法只需要一些额外的空间,但是查找,删除和插入等操作会变得比较方便。
Refer:
Binary search tree
Are duplicate keys allowed in the definition of binary search trees
你问的太模糊了,能否画出原有树结构和你期望的结果。
要看你的树的目的,在我的记忆中,树的每个节点都是唯一的,在插入重复的节点的时候,我觉得是丢弃。