数据结构在实际项目中的使用

在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。

这个系列教程就是为了解决这样一个问题的,我将会使用很多实际项目中的场景,来说明一种数据结构解决了什么实际问题,他的各种 操作时间复杂度,有何种缺点和优点等等。

由于种种数据结构的典型应用不同,因此本系列中,我们将涉及到Python,Go和C三种语言,还有一点点汇编知识,但是对此不要感觉到 害怕,他们之间的语法并不会相差太大,基本上C语言家族的语言都很类似,相信大家放下心中的恐惧之后可以轻松理解代码的意思。

本系列分为12篇,分别介绍了12种数据结构在实际项目中的使用:

  • 数组(array)
  • 位图(bitmap)
  • 链表(linked list)
  • 字典(map或dict)
  • 栈(stack)
  • 队列(queue)
  • 大小堆(heap)
  • 集合(set(hashset, treeset))
  • 有序集合(树的实现和跳跃表实现,参考redis)
  • hyperloglog(参考redis)
  • radix tree或trie
  • b tree 和 b+ tree