Algorithm 为有序元素集选择数据结构,并按预定义顺序快速遍历元素

Algorithm 为有序元素集选择数据结构,并按预定义顺序快速遍历元素,algorithm,data-structures,tree,heap,Algorithm,Data Structures,Tree,Heap,以下哪种数据结构允许: 存储有序(按某些标准排序)的元素集 允许以最小的算法复杂度按此预定义顺序遍历元素 以最小的算法复杂度插入新元素或删除现有元素 在非连续(分散)内存区域中存储元素 乍一看,红黑树可能是一个选项,或者xfast树,但我在寻找相对简单的算法。我很高兴看到你的建议。你可能想寻求一些解决方案。维基百科列出了几个实现。你已经提到了红黑树。还有avl树 如果您不能使用高性能库来实现这一点,并且您必须自己实现它,那么您还可以研究一个自实现的库。尽管此数据结构旨在处理速度较慢的磁盘存储,但

以下哪种数据结构允许:

  • 存储有序(按某些标准排序)的元素集
  • 允许以最小的算法复杂度按此预定义顺序遍历元素
  • 以最小的算法复杂度插入新元素或删除现有元素
  • 在非连续(分散)内存区域中存储元素

  • 乍一看,红黑树可能是一个选项,或者xfast树,但我在寻找相对简单的算法。我很高兴看到你的建议。

    你可能想寻求一些解决方案。维基百科列出了几个实现。你已经提到了红黑树。还有avl树

    如果您不能使用高性能库来实现这一点,并且您必须自己实现它,那么您还可以研究一个自实现的库。尽管此数据结构旨在处理速度较慢的磁盘存储,但没有理由不将其用于仅内存的存储


    和B+树的优点是,您可以使用块大小来调整性能。与其他选择相比,这些树不需要“旋转”操作。相反,它们拆分并连接块节点。B+树具有附加的优点,即排序顺序中的数据遍历非常简单,因为它遍历链接(块)列表。

    流行的编程语言如C++,java使用RB树来实现这些类型的数据结构。你可以直接使用他们的图书馆。你们想自己实施吗?RB树非常简单,可以满足上述要求。另一个选项是AVL树。