你应该听说过的复杂数据结构有哪些?

16

这是一个派生问题,但我想了解哪些数据结构对于它们的实用性至少应该熟悉。 然而,这些结构如果没有一定的专业知识,就很难实现。

我认为两者之间的好界限是堆 -- 你应该能够编写一个堆,但需要一天时间。 不适合的是二叉搜索树等。编辑:我看到这取决于你在做什么。 我认为有一个列出使用原因的短语清单会很棒!

以下是一个起点列表:

  1. B+ 树:在单个键上良好的常规索引结构
  2. K-d 树:空间数据
  3. 红黑树:自平衡二叉搜索树;也有 AVL 或 splay 树
  4. 跳跃表:对于随机或(伪)顺序访问的良好混合结构
  5. Trie 树:线性时间字符串搜索

什么是鲜为人知但很酷的数据结构? - Casebash
14个回答

1

0

你可以尝试以下方法:

  • y-fast树
  • 近似有序集合
  • 选择堆
  • 紧凑数组
  • 单体列表
  • 简洁列表

0

我会把哈希表加入列表中。它们在概念上非常简单,但是一旦你看到如何实现一个好的哈希函数和高效的探测方法,就会变得复杂。


0

R-Tree及其变体,如R*-TreeX-Tree,Pyramid-Tree。各种M-Tree变体,如Slim-Tree。

通常情况下,查询树很容易。也可能有一个简单的批量加载(对于R-Trees,STR通常做得很好)。棘手的部分通常是在更新过程中维护良好的树。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接