一些鲜为人知却非常实用的数据结构

来源:互联网 发布:淘宝怎么删除差评 编辑:程序博客网 时间:2024/05/01 04:36

原文: http://www.cnblogs.com/haippy/archive/2013/05/27/3101697.html

作者: 傅海平

================================================================================================================================

作为程序猿(媛),你必须熟知一些常见的数据结构,比如栈、队列、字符串、链表、二叉树、哈希,但是除了这些常见的数据结构以外,还有没有其他不是很有名,但却非常实用的数据结构呢,有人在 stackoverflow 上问了这样一个问题,得到了很多热心观众的回答,我们今天就来看看那些鲜为人知却非常实用的数据结构吧。

首先,维基百科上的一个页面列举了常见的数据结构,你可以先去那个页面看看。下面我们就来看看一些不是很常见的数据结构吧:

  • Tries(前缀树)
  • Bloom filter(布隆过滤器)
  • Rope: 主要用于某些文本编辑器中,可用于字符串高效地插入、删除、追加等操作。SGI 的 STL 中实现了 Rope(http://www.sgi.com/tech/stl/Rope.html)
  • Skiplist(跳表)
  • Spatial Indices(空间索引),如R-trees 和 KD-trees
  • Splay trees(伸展树)
  • Disjoint Set(并查集)
  • Fibonacci heaps(斐波那切堆)
  • Huffman trees(哈夫曼树)
  • ring buffer(又名circular buffer)
  • Merkle trees(哈希树)
  • min-max heap
  • bitset(又称bit array, 位数组)
  • Xor linked list
  • AA tree
  • Log-structured merge-tree
  • Radix tree
  • Judy array