常见数据结构的简单总结

数组

  • 直接下标数组 如JAVA中的ArrayList
  • Hash值Mod为下标 如JAVA中的HashMap

链表

  • 单项链表
  • 双向链表 如JAVA中LinkedList
  • Skip List 跳跃表,可快速查找词语,在lucene、redis、Hbase等均有实现。相对于TreeMap等结构,特别适合高并发场景(Skip List介绍)

队列

  • Ternary Search Tree 三叉树,每一个node有3个节点,兼具省空间和查询快的优点(Ternary Search Tree)
  • Trie 适合英文词典,如果系统中存在大量字符串且这些字符串基本没有公共前缀,则相应的trie树将非常消耗内存(数据结构之trie树)
  • Finite State Transducers (FST) 一种有限状态转移机,Lucene 4有开源实现,并大量使用
  • Double Array Trie 适合做中文词典,内存占用小,很多分词工具均采用此种算法

通过邻接矩阵/邻接表/逆邻接表/十字链表表示。可以通过深度优先或者广度优先进行遍历。

猜你喜欢

转载自blog.csdn.net/define_us/article/details/84861578