AVL 树是否可以对不同节点中的键具有相同的值?
Can an AVL tree has the same value for a key in different nodes?
我不知道怎么问这个,但我会尝试。
所以我实现了一个 AVL 树,它与复杂性 O(log n) 完美配合。
我想在其上应用一些功能,但为了做到这一点,我必须允许我的键在某个时候具有相同的值(这意味着没有唯一键)。换句话说,如果我添加一个数字
为 4 的键(键 = 4),我可以插入到另一个数字为 4 的键(另一个键 = 4)。 最终我的树将是,根中的X,左子树的值小于X,右子树的值大于或等于X.(或者显然可以允许等于左子树而不是右子树)。
我的问题是,我知道这仍然会被认为是一个二叉搜索树,但它仍然会被认为是一个 AVL 树吗? 随着 O(log n) 在其所有操作中的复杂性?我的意思是这个平等的东西不会影响任何事情?还是我错过了什么!?
非常感谢你们
AVL 树不需要键的唯一性。元素类型需要的唯一操作是操作<,即使在您可以认为键相等的情况下,这也是有效的操作。你是右的,左子树将由小于 then 的键组成,但右子树项的值"不小于"(逻辑上应该大于或相等,但甚至不需要元素具有相等或伟大的概念)。
关于C++,std::multiset 不需要键的唯一性,可以作为 AVL 树实现。
其余的取决于您的实现。
相关文章:
- 检查两个节点在子节点上是否具有相同状态的更优雅的方法
- 节点是否为空,即使它有一个值?
- 图问题:找出两个节点是否在每个节点的O(1)时间和O(2)存储中共享同一分支
- C++中是否有一个函数可以为您获取指向该节点的所有指针的地址空间
- 如何检查一行中的3个节点是否相同C++?
- C ,二进制树的高度,而不是检查我的子树是否为空,而是在检查我的子树是否是叶子节点.抛出分割故障
- 如果我删除指向节点的指针数组,节点本身是否会被删除
- C++:是否保证 std::unordered_map 是基于节点的
- AVL 树是否可以对不同节点中的键具有相同的值?
- 如何在用于删除节点的函数中检查我的链表是否C++为空
- 是否可以将新的列表节点分配给链表的现有节点
- 制作完成后是否可以将节点添加到图形中
- 检查节点是否是二进制搜索树的根
- 通过返回指向节点的指针,列表的其余部分是否也返回?C++
- 是否有任何函数可以从 wxtreelistctrl 获取所有选定的叶节点
- 检查节点是否使用Maya API连接到特定的插头
- 是否有任何树容器可以存储具有多个值的节点
- 在图算法中,确定是否访问节点的最佳方法是什么?
- C++ A-star 实现 -- 确定节点是否已在打开项目的优先级队列中
- C++ Xerces-c - 如何判断节点是否占位符