自从数据结构教程发布以来,很多读者向我询问应该如何自学数据结构,或者怎么才能学好数据结构和算法?本节将结合我的个人经验,给读者介绍一些学习数据结构和算法的方法,帮大家规避一些学习数据结构和算法过程中可能会踩的坑。
首先我认为,学习数据结构和算法有一个很重要的前提,就是至少熟练掌握一门编程语言。学习数据结构和算法,实践是非常重要的,如果仅仅是空有理论而不实践,反复学多少遍都没用。
本教程以 C 语言作为教学语言,当然读者也可以在掌握 C++、Java、Python 等语言的基础上学习数据结构和算法。因为无论是数据结构还是算法,它教会我们的是解决问题的思想,并不挂靠某一门具体的编程语言。换句话说,在掌握任何一门编程语言的基础上,都可以学习数据结构和算法。
其次对于初学者来说,好的学习资源是非常重要的。要知道,学习数据结构需要读者有一定的空间想象能力,所以强烈建议读者在看文字资料的同时,再找一套相应的视频资料,两者结合来学习,往往会事半功倍。
那么,有哪些不错的学习资源呢?我个人强烈推荐严蔚敏老师的《数据结构(C语言版)》以及她录制的一整套数据结构视频资料。如果读者刚刚接触数据结构和算法,可以跟随本教程学习,同时配以严蔚敏老师录制的视频资料。
本教程就是以严蔚敏老师的数据结构为原型进行编写的,和后者相比,本教程的语言通俗易懂,同时配有完整的 C 语言代码,非常适合初学者入门使用。
另外,市面上还有很多不错的学习资料,例如《大话数据结构》、《数据结构与算法分析》等,同时慕课(mooc)上也有很多讲解数