如何学习数据结构?要先学习C或C++编程语言,因为数据结构是需要编程实现的。学好数据结构首先学好C语言指针,数据机构内在串联全靠...
如何学习数据结构?
要先学习C或C++编程语言,因为数据结构是需要编程实现的。
学好数据结构首先学好C语言指针,数据机构内在串联全靠指针作用,指针主要难在本身是带地址的变量,再加上指针的指针串联导致很多人误解,先要学会理解,要对计算机的内存结构有个大概了解,对一些常见的进制之间的转化以及字节对齐等有行程基本的认知。
理解概念,建立抽象模型,比如简单的队列,先进先出模式,在设计数据模型的时候,就需要有一个对头和队尾的概念,数据需要从队尾插入队头出来,基本上三个属性就出来了,一个对头指针,一个队尾指针,一个结构体数值,常见的方法有删除清空队列,有插入队列操作,出队操作,创建初始队列操作等等,这样子抽象数据模型,形成自己的思维理解,然后再进行代码设计。
需要变通实践,代码调试变通,数据结构的组合无穷变着写代码。算法的奥妙就是在于变换,放在数据结构也是这个样子,掌握基本的数据机构算法,在学好数据结构的前提下可以学习下一本经典的算法书《算法导论》这个是算法的经典书籍。
学习数据机构不要想着有什么技巧或者方法,把自己调整到最佳的学习状态,方法自然就有了,不要给自己设置什么限制,设置底线只会让自己处在一个围墙之内,学习新东西就是突破自我的一个过程,不要在开始学习的时候给自己过大的压力。
——资料来源:
(星星代表我的使用频率)
1.教材:
数据结构与算法分析 (豆瓣)
(经典之作,广为人知)
数据结构 (豆瓣)
(严蔚敏的,就是国内大学常用的那本。严谨,伪代码不错。)
大话数据结构 (豆瓣)
(语言比较通俗。比第一本简单易懂。btw,作者程杰老师在知乎上也相当活跃)
算法(第4版) (豆瓣)
(图超多。比第一本简单易懂。)
2.慕课:
浙江大学的:数据结构 - 网易云课堂
(真的很棒。借雷军的一句广告:我所有的向往。对于每个知识点的视频讲解,基本都涉及了:动画演示、写代码的思路、写代码的技巧、算法优化、算法复杂度分析等等)
清华大学的:数据结构-学堂在线慕课(MOOC)平台
(同样地非常非常非常好。比起浙大的数据结构,难度更深,内容更多。而且听完课以后,不仅知其然,也知其所以然。)
3.整个互联网!
——说明:
1.教材这么多本一起用!是的,一起用!对于某个知识点,多翻几本书看看,哪本书讲得好就看哪本。关于这些教材的优缺点,大家都应该很熟悉了。可能有人对严蔚敏的《数据结构》有疑虑,我个人认为这本书的优点是很严谨,而且代码也不错,就是书写得不友好,许多地方没有照顾读者智商(特别是我的智商)。所以,看得懂就好,看不懂就算了,教材反正还有嘛~
2.只靠书还是不够的,你需要搜索!比如KMP算法,特别难理解,但是你一搜索,可以发现很多人 在博客上分享他们的理解,讲解详尽,例子丰富,比书上好多了。
3.强烈推荐慕课。这两门慕课的老师的讲解都特别棒。首先是易于理解。对于算法概念上的分析讲授,由于是视频,在演示上比书本有先天优势,使得内容很好理解。接着是,视频能够比书本带来更大的信息量,提高了效率。最后是,看视频很明显比看书轻松有趣。
4.最后提醒,需要练习做题。只是看一遍书和视频,那是远远不够的。本人的题主要来自老师,如果你找不到题,请参考其它答主的回答,或者在我所说的那门慕课里找到做习题的网站。(不得不说,这个做题的网站也很棒。哎呀浙大好棒呀)最后,看完书和视频能懂,只算70%;能写代码能跑,才能算90%(2021更新:做题网址在此pintia.cn/problem-sets?)
5.推荐两个学习小技巧:(1).各个算法都有一些随着过程不断地改变的数组吧?把他们在纸上推导一遍(2).尝试一下手写代码(用word也行)(当然啦,不要求完全正确)。如果这样都能写出来,那肯定掌握了95%+。
*********补充一点儿感悟***********
按知识点来,一个一个知识点去攻破。
不必按部就班地,把某本书从第一章看到第十章,或者把某门课从从头到尾都看。不必这样。
对,按照知识点,一个一个来。
1.先知道是怎么回事。
2.然后使劲理解。
3.接着做题检验自己。
4.下一个知识点。
以知识点为目标,而不是以某本书或某门课为目标。
至于这个知识点怎么掌握,可以看书,可以看视频,可以看百科,可以搜高手的教学贴等等。
不仅仅是在这个问答里面,在别的很多地方相关的提问,很多答主都直接抛个书名。
要我说,一个书名是不够的,得列个书单才行,不仅如此,还有视频单,百科单,甚至仅就一个KMP算法就可以列个分析贴单了233333....
入门学习数据结构时应主要是这两个过程:
选择一本合适的书。(初学者应从C语言实现开始学习)
编程实现和应用。(不断的刷题、看课程、同时做实验)
1.阅读书籍
一定要看书,一定要看书。数据结构和语言不一样,他不是锻炼我们编程能力,更多时候考察的是我们逻辑问题,也就是一种优化。
若果是纯小白的话:建议去图书馆借一本大学的比较薄一些的教材《数据结构》,然后建议尽量快的往后学习。如果一个知识点实在不懂,就可以跳过,学习到后面与前面知识点联系起来,说不定你会觉得很简单。
2、常见算法思想:贪婪法、分治法、穷举法、动态规划,回溯法。
以上列出来的算是最基本的吧。就是说你刷题之前,要把这些过一遍再去刷题。如果你连这些最基本的都不知道的话,那么你再刷题的过程中,会很难受的,思路也会相对比较少。
总之,千万不要急,先把这些基本的过一遍,力求理解,再去刷题。这些基础的数据结构与算法,我是在大一第二学期学的,我没看视频,我是通过看书学的,那时候看的书是:
1、算法分析与分析基础:这本比较简单,推荐新手看。
2、数据结构与算法分析—-C语言描述:代码用C写的,推荐看。
3、挑战程序设计竞赛(第二版):也是很不错的一本书,推荐看。
具体可以看我的另外一篇文章,里面是介绍这几本书的:
算法与数据结构书籍与视频福利
说实话,我那一学期的时间几乎都花在数据结构与算法上,但刷的题很少,只是书本上的一些例题。所以当我把这些基本的过一遍之后,再去一些网站刷题依旧非常菜。
所以你们千万别指望以为自己把这些思想学完之后刷题会很牛,只有多刷题,只有多动手实践,你的灵敏度才会提高起来。
严蔚敏的数据结构讲的好不好?有木有外国的原书讲得好?
详细不?全面不?严蔚敏的数据结构
外国讲的比较深入,当你看完严蔚敏的数据结构时,然后再去看外国的可能就不会感到吃力了
计算机考研资料,哪套好?有没有人用过?
第二套应该要好一点
《数据结构》严蔚敏 清华大学出版社
《计算机组成原理》唐朔飞 高等教育出版社
《计算机操作系统》汤子瀛 西安电子科技大学出版社
《计算机网络》谢希仁 电子工业出版社
这里推荐一个考研资料比较不错的网站,学习口袋网。里面关于考研类的资料很全,更新速度也非常快,基本上大家想知道的考研资料信息网站里面都有。在这里真的建议大家多看一些报考学校的资料与专业课视频,这对大家考研是非常有帮助的。
分享下免费的在线考研资源:百度网盘链接:https://pan.baidu.com/s/1O17H08bhA9u8MKYt0NuBDA
1.数据结构
书名 作者 出版社
《数据结构(C语言版)》 严蔚敏、吴伟民编著 清华大学出版社
《数据结构题集(C语言版)》 严蔚敏、吴伟民编著 清华大学出版社
《算法与数据结构考研试题精析》 陈守孔、胡潇琨编著 机械工业出版社
2.组成原理
书名 作者 出版社
《计算机组成原理》 唐朔飞主编 高等教育出版社
《计算机组成原理学习指导与习题解答》 唐朔飞主编 高等教育出版社
《计算机组成原理解题指南》 白中英主编 科学出版社
3.操作系统
书名 作者 出版社
《计算机操作系统》 汤小丹主编 西安电子科技大学
《计算机操作系统学习指导与题解》 汤小丹主编 西安电子科技大学/td>
4.计算机网络
书名 作者 出版社
《计算机网络》 谢希仁 电子工业出版社
《计算机网络知识要点与习题解析 》 王慧强主编 哈尔滨工程大学出版社
《计算机网络考研指导》 黄传河主编 机械工业出版社
本文内容由新东方在线整理!
链接:https://pan.baidu.com/s/169Kw4EvOQw94DmGV5mh58A
提取码:t4ci
这里有一些老师的相关视频,你可以参考一下。
数据结构谁的网课比较好?
郝斌老师的就很不错。
他讲得非常好,郝斌老师的思路是以初学者的思路来思考的,非常适合小白,你不理解的问题,基本上他都会详细说一下,有的地方他讲的不是非常的全,但是讲的比较深刻,课程的使用的书是严蔚敏的《数据结构》可能比较晦涩难懂,可以去看看《大话数据结构》或者《啊哈!算法》这两本书。
相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念:程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的同学相信对这句话是深信不疑的。
分层三个步骤:
1、首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程我称之为入门阶段;
2、接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程我称之为实践阶段;
3、最后去了解数据结构与算法背后的相关数学原理等,这个过程我称之为原理阶段。
如果认为本文对您有所帮助请赞助本站