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

Ove*_*own 16 algorithm performance data-structures

这是一个衍生问题,但我正在询问您至少应该熟悉它们的实用性的数据结构.如果没有一些专业知识,这些结构太难实现.

我会说两者之间的良好界限是堆 - 你应该能够编写一个堆,但它需要你一天.不合适的是BST等.编辑:我认为这取决于你在做什么.我认为列出一个包含总结您使用它的原因的短语会很棒!

这是一个开始的列表:

  1. B +树:单个键上的一般索引结构很好
  2. Kd树:空间数据
  3. 红黑树:自平衡BST; 还有AVL或splay树
  4. 跳过列表:用于随机或(伪)顺序访问的良好混合结构
  5. Trie:线性时间字符串搜索

小智 2

这是一个好的开始;维基百科上有一个完整的数据结构列表,其中一些应该被检查。但至于您需要哪些这取决于您打算从事的领域……无论您正在做什么。

嵌入式系统人员的想法与网络人员的想法截然不同,而网络人员则强烈反对业务逻辑人员的观点。弄清楚你想做什么;语言和平台也会影响您所需的列表。