在开篇之前,先说说这个计算机考研的核心课程。数据结构这一门课程,是公认的最难也是最重要的课程。难是难在目前国内的教程对这些结构介绍的过于抽象,没有实际的运行示例。直接上数据结构思想,这让一般的同学是不好接受的,有种听着就懂,一看就懵的感觉。索性本人在学习数据结构的过程中,比较幸运的以一份国外的教材和PPT进行学习,此篇总结的难度可能比考研的略简单,但是重在思想方法的介绍。这篇总结是基于之前《数据结构与算法深入》专栏。可能会涉及比较多的C++代码。
这部分内容的习题,本人会从网上找相应的一些简单面试图。这部分的代码部分,要求懂点C++。因为我本人一直认为,学数据结构就是学习算法,算法最终是要转换成代码来使用的。自己写一遍代码远比理解生涩的概念要容易的多。
其实数据结构,在我看来,主要有这几大块内容:
- 算法复杂度
- 线性表
- 树
- 图
- 查找
- 排序
其中真正的数据结构只有线性表,树还有图。查找跟排序是这两个结构的应用。而且栈与队列这部分内容本就是线性表的特例。在学习树的时候重点学习其结构,学线性表的时候重点学习其算法。学图的时候,重点学习它的的离散表示。
这里就不按常规的复习顺序了,因为之前有过这一类的文章的总结,因此,很多文章我就直接拿出来修改用了。
还是那句话,这个系列会有很多的代码,尽量敲一遍。