点击上方蓝字关注我,了解更多咨询
C语言的数据结构与算法,难就难在链表,学会了链表,可能后面就一点都不难了。书籍推荐《数据结构与算法分析—C语言描述版》,要深入学习的话可以选择这本书,因为针对链表的讲解是比较详细的,所以可以很快理解链表。
跟着书上一点点实现基本操作(增删改查)动手很重要,遇到bug解决bug也重要,会让我们对链表理解的更加深刻。
数据结构的学习分为四层
首先,简单的理解方法,比如我们知道栈是先进后出,队列是先进先出就可以了,这个都很好理解。
其次,简单的应用方法,比如比如你知道
顺序表
的实现由数组和链表的方式,他们各自的优缺点,在某种场景使用,然后会写他们的test文件,就是怎么去初始化一个表,调用一下插入方法啊,删除啊,求长度啊之类的。
之后,理解具体的实现,能看懂具体的实现方法,比如链表插入的函数,逻辑可以跟上,大概就是如何新建一个节点,怎么把数据放入节点,怎么让前一个节点只想这个节点之类的,这时候照着书上的代码敲出来,保证可以运行。
编辑
切换为居中
最后,通过系列的学习和刷题,可以直接默写代码。
刷题之前必备掌握基础
不要基础还没有掌握扎实就开始刷题了,如果你想开始刷题了,那么一定要具备的基础有:
1、常见数据结构:链表、树(如二叉树)。
2、常见算法思想:贪婪法、分治法、穷举法、动态规划,回溯法。
以上列出来的算是最基本的吧。就是说你刷题之前,要把这些过一遍再去刷题。如果你连这些最基本的都不知道的话,那么你再刷题的过程中,会很难受的,思路也会相对比较少。
总之,千万不要急,先把这些基本的过一遍,力求理解,再去刷题。这些基础的数据结构与算法,可以通过看书学习,可以看的书是:
1、算法分析与分析基础:这本比较简单,推荐新手看。
2、数据结构与算法分析—-C语言描述:代码用C写的,推荐看。
3、挑战程序设计竞赛(第二版):也是很不错的一本书,推荐看。
在做题的时候一定要有追求完美的态度,不要把一个题做出来之后就直接刷过去。
算法的能力提升和做题数量有一定关系,但更多的是积累+优化。第一次做题粗略做出来就可以了,但是下一遍的时候要思考如何降低时间复杂度或者空间复杂度。想不明白的话,也有很多大佬分享自己的做法。
END
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
戳“阅读原文”我们一起进步