1.掌握一门编程语言(c语言, C++、Java、Python 都可以)
2.文字资料与视频资料,两者结合来学习(B站青岛大学王卓老师录制的一整套数据结构视频资料很不错,另外《大话数据结构》、《数据结构与算法分析》等资料,同时慕课(mooc)上也有很多讲解数据结构和算法的视频资料)
3.一个好的学习方法(多动笔、多动手)
所谓“多动笔”,在学习数据结构和算法的过程中,要边学习边画图。因为,对于数据结构中的存储结构来说,尤其是树结构和图结构,存储结构确实比较复杂,仅靠空间想象难免会有纰漏,而通过亲手画图往往能避免很多“坑”。
以学习链表(后续章节会做详细讲解)为例,如果我们想象不到它是怎样存储数据,就应该尝试动手将它画出来,如图所示:画链表
由此,我们就画了一个存有 {1,2,3,4} 数据的链表。
不仅如此,假设在上图的基础上想删除存储元素 3 的结点,也可以先通过画图来实现:
如上图所示,整个画图的过程,也是我们思考如何通过程序实现删除指定节点的过程:
为了删除存有元素 3 的结点,先要找到它的前驱结点,也