准备考研的大三狗,跨考软体工程,学了C语言,水平很烂,仍然挣扎在指针的章节。数据结构看的是严蔚敏的《数据结构》,网课看的是浙大的数据结构,目前学的吃力。

存在就是大致演算法思想看的懂,但是演算法描述看的有些地方就是很懵,让我自己写是写不出来,因为有些表达的地方,看的特别懵,有没有数据结构学前班那种书籍啊?


编程没过关,看不懂数据结构是很正常的。去新浪微博看陈越姥姥的《C语言自学攻略》,跳过前面,直接看刷题部分。


混吃等死的小白,如果有什么不足的地方,还望大神们见谅。


语言是基础功。

根据题主的描述我猜测是在Link list挣扎。link list是指针的运用。就目前我学习数据结构的经验来看,我觉得数据结构就是对语言的应用。教给你的是处理一些问题的最优的方法。

在学习数据结构前有一个扎实的语言基础能够省掉你很多时间。

在学习数据结构前有一个扎实的语言基础能够省掉你很多时间。

推荐书籍:

夯实语言基础

C primer plus

C Primer Plus(第6版)中文版?

book.douban.com图标
    • 这本书比较基础,是我最开始学习C的时候用的书。虽然基础,但是涉及的东西并不浅。(至少对于大二的我来说是这样的)里面涉及指针讲得非常详细。这里列一下需要看的章节,因为相关知识分布得比较散。
    • 第10章:数组和指针
      • 这章主要是熟悉指针的基本用法
      • 10.3 指针和数组 10.4 函数、数组和指针 10.5 指针操作
    • 第14章 结构和其他数据形式
      • 这章会介绍到structure,这个是演算法里面经常用到的东西
      • 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.9
    • 第12章
      • 关于动态内存分配的相关知识,在link list 还有指针栈、指针队列会经常用到
      • 12.1 12.2 12.3 12.4

关于具体的演算法学习

目前演算法相关的书籍用的是《数据结构与演算法分析 C语言描述》。

使用体验尚可。是辅助平时上课看的。(我其实之前都是不听老师讲课自己看书)建议先跳过第一章演算法分析。因为那章讲得比较迷。

数据结构与演算法分析 (豆瓣)?

book.douban.com图标

其他资源

这里推荐一个学习演算法可以用到的网站:

https://visualgo.net/zh/?

visualgo.net

https://visualgo.net/zh

里面图形化了演算法。能够帮助你更快地理解一些基础的原理。建议结合演算法书来观看。

刷题很重要

学数据结构,应用很重要。这里需要对学过的演算法进行实践。要不然就是纸上谈兵了。当你真正用过一些方法解决了实际的问题后,你才会发现某个特定的演算法的魅力。

这里推荐LeetCode。

力扣 (LeetCode) 官网 - 全球极客挚爱的技术成长平台?

leetcode-cn.com图标

里面的题目是分了类的。我在学习数据结构的时候,学到哪就找相关的题来做。学到链表做链表,学到堆栈做堆栈。

具体刷题的话我就分享一下我是怎么刷的,因为我也还是个小白。

第一遍

刚开始刷难度统一简单。刚开始做题会很难受。因为会暴露很多语言不扎实的问题。

如果是基础语法出错了,就去翻C primer plus。找个文档或者啥的记下来。形成一个自己易错笔记,容易错的地方见多了,就不容易再出错。

如果是演算法不熟悉,那是必然,来刷题就是为了熟悉演算法的。实在想不起就翻另外一本我推荐的演算法书。

当你编译成功后第一遍基本就可以结束了。

第二遍

不管你第一遍有没有通过测试。第二遍都是必要的 。

第二遍刷什么?找到解题,去看官方解题的答案。因为一般来说官方的答案都是比我的答案更加优秀的。了解官方解答的思路与原理。然后总结笔记。越细越好。

接下来不要看官方的代码(虽然通常都没有C的解答来著),自己尝试去用官方的思路去解答


以上都是我个人的学习经验和总结。如果有哪些地方有问题,请大神下手重一点。因为我不想走弯路(误)。不想让题主走弯路。


首先,个人认为严老的数据结构不适合自学。实际上,如果你真的多接触了几本演算法书,你会发现 只有演算法导论是真正揉碎了知识教给你的。包括知乎上推荐的 演算法第四版 ,实际上个人读的时候并不觉得多好,少了太多数学证明和内容。

但是 演算法导论不适合小白读,一定要有基础之后,才能学习。如果你有基础,不妨看一看演算法导论,可以先看渐进符号再看第一第二章。

那么,我是小白的话,该如何接触演算法与数据结构呢?

选教材很重要。个人不推荐严老的书作为初学书。建议使用抽象级别更好的cpp java作为学习语言,而严老的书是以C。我在刚刚接触学习数据结构的时候买了很多的书 包括 数据结构java实现等等知乎上推荐豆瓣上的高分书 实际上我个人以为这些均 不适合自学。他们无一例外对计算机水平差的0基础同学不友好。

有点事,待更。


数据结构所需要的C语言基础主要是指针以及结构体两块,当然顺序、条件、循环结构等基础也需要知道,但指针与结构体是C语言通向数据结构的桥梁,需要下功夫去学习,学习方式不推荐啃书,而应该看视频,视频推荐小甲鱼C语言、浙大翁凯C语言、郝斌C语言,到哪去找这些视频呢,当时是B站咯

C语言是基础,重头戏是数据结构,数据结构学习最忌啃严版课本,课本写得太专业了,内容也多,重点不突出,实在不适合考试应试。数据结构备考正确姿势应该是用辅导书学,最受欢迎的辅导书是天勤数据结构高分笔记或王道数据结构,这两本用任意一本就行了,这两本书写得很通俗易懂,习题也非常经典有代表性,非常适合应试!

Good Luck!


大话数据结构 啊哈演算法 真心推荐 我刚开始入门的时候和你没差 看著两本再进阶


我觉得严蔚敏老师的数据结构可能不太容易看得懂,想看讲得很生动有趣的可以看大话数据结构,网路上有很多关于指针,数据结构的动图,建议可以看看这些方便理解。而且学习数据结构是需要勤刷题做练习辅助的,光看不练是很难真正理解的。


《演算法》第四版,红皮的那本


推荐阅读:
相关文章