如何学好C语言的数据结构与算法?
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学好C语言的数据结构与算法?相关的知识,希望对你有一定的参考价值。
C语言的数据结构与算法,难就难在链表,学会了链表,可能后面就一点都不难了。书籍推荐《数据结构与算法分析—C语言描述版》,要深入学习的话可以选择这本书,因为针对链表的讲解是比较详细的,所以可以很快理解链表。
跟着书上一点点实现基本操作(增删改查)动手很重要,遇到bug解决bug也重要,会让我们对链表理解的更加深刻。
数据结构的学习分为四层
首先,简单的理解方法,比如我们知道栈是先进后出,队列是先进先出就可以了,这个都很好理解。
其次,简单的应用方法,比如比如你知道
顺序表
的实现由数组和链表的方式,他们各自的优缺点,在某种场景使用,然后会写他们的test文件,就是怎么去初始化一个表,调用一下插入方法啊,删除啊,求长度啊之类的。
之后,理解具体的实现,能看懂具体的实现方法,比如链表插入的函数,逻辑可以跟上,大概就是如何新建一个节点,怎么把数据放入节点,怎么让前一个节点只想这个节点之类的,这时候照着书上的代码敲出来,保证可以运行。
最后,通过系列的学习和刷题,可以直接默写代码。
刷题之前必备掌握基础
不要基础还没有掌握扎实就开始刷题了,如果你想开始刷题了,那么一定要具备的基础有:
1、常见数据结构:链表、树(如二叉树)。
2、常见算法思想:贪婪法、分治法、穷举法、动态规划,回溯法。
以上列出来的算是最基本的吧。就是说你刷题之前,要把这些过一遍再去刷题。如果你连这些最基本的都不知道的话,那么你再刷题的过程中,会很难受的,思路也会相对比较少。
总之,千万不要急,先把这些基本的过一遍,力求理解,再去刷题。这些基础的数据结构与算法,可以通过看书学习,可以看的书是:
1、算法分析与分析基础:这本比较简单,推荐新手看。
2、数据结构与算法分析—-C语言描述:代码用C写的,推荐看。
3、挑战程序设计竞赛(第二版):也是很不错的一本书,推荐看。
刷题方法放送
在做题的时候一定要有追求完美的态度,不要把一个题做出来之后就直接刷过去。
算法的能力提升和做题数量有一定关系,但更多的是积累+优化。第一次做题粗略做出来就可以了,但是下一遍的时候要思考如何降低时间复杂度或者空间复杂度。想不明白的话,也有很多大佬分享自己的做法。
常见的刷题网站就是
剑指Offer_在线编程+题解_牛客题霸_牛客网 (该网址为《剑指offer》原题,里面70%的手撕代码题目)
leetcode:如果大家时间够的话,建议还是要刷一刷的,很多企业的笔试题目的来源之地
mysql:相关内容,大家需要练习!
【这可能不只是一篇面经】_笔经面经_牛客网(这是一篇完整的面试经,不要以为时间太久了,但是经典永远是经典哈)
最后:看课入门->看书深入->动手去做->刷题,数据结构和算法,或者说刷题,是一个要长期坚持的事情。
以上是关于如何学好C语言的数据结构与算法?的主要内容,如果未能解决你的问题,请参考以下文章
热榜!!!数据结构与算法:C语言版---数组与稀疏矩阵---强势来袭!