Skip to main content

数据结构总结

一、关于本文档

在编写本文档之前,如何构造一个合理的目录结构是我非常烦恼问题,因为数据结构总是和算法交叉着。

我原本想以问题为引入点,从而介绍各种数据结构和算法,但由此得到的就是一个杂乱的目录。而这个文档本身也是奔着手册的形式去写的,可查阅性我认为是应该摆在第一位的,所以这种方式就被 Pass 掉了。

或者是分成两个文档,一个作为基础篇介绍基础的数据结构和算法知识,一个作为进阶篇再像上面的方法一样介绍各种高级数据结构和算法。但还是被 Pass 掉了,原因还是因为可查阅性的问题。

总之,经过考虑之后,现在的文档还是分为了两个部分,但是是将数据结构和算法这两个部分进行了分离。本文档着重编写各种数据结构,所有内容将分为两部分,其一为基本数据结构,第二部分是高级数据结构。

当然了,介绍数据结构一定是免不了介绍算法的,因为每一种数据结构的操作都或多或少的使用了一些算法,在本文档中,与重要算法弱相关的内容将直接给出,而与那些重要算法强相关的内容将链接到另外一个文档中的具体内容。

同样,在介绍算法的文档中,会遇到有些因为算法而催生出来的数据结构,它们虽然与算法紧密相连,但也将包含在这个文档中。

本文档的另一部分:算法总结与分析

二、使用的语言

本算法不着眼于某一种具体的语言,在描述接口的时候,将用伪代码给出说明。

而需要特殊列出的实现则以多种语言实现的形式给出,这些实现可能包含 C、C++、Java 以及其他可能的语言(暂时只学了前三个)。

三、参考资料

  • 《大话数据结构》—— 程杰
  • 《数据结构与算法分析 (第 2 版)》—— Mark Allen Weiss
  • 《算法 (第 4 版)》—— Robert Sedgewick、Kevin Wayne
  • 《算法导论 (第 3 版)》—— Thomas H.Cormen、Charles E. Leiserson、Ronald L. Rivest、Clifford Stein