怎样学好数据结构

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=6

    image.png

    1、数据结构学习思路

(1)数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去领悟它的思想;对于初学者,选择一种自己最熟悉的语言去分析它。而且,随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。

(2)如果你没有学过C语言,或者C语言学的不好的时候把数据结构当成一本数学书来学,它所讲述的都是一些简单的图论。在你的大脑中的主线不能丢失:线性结构,树结构和图结构。当你不再考虑复杂的程序设计时,仅仅研究个个离散点之间的关系,似乎数据结构也就不会那么难了。

(3)学习好了抽象的离散点关系后,再巩固一下你的C语言水平,书中描述的都是类C。因此你只要学习简单的C定义、判断、循环语句就基本能看的懂课本中所有程序了。

(4)以上都完成后,从数据结构的线性表开始。线性表中顺序表似乎是为你学习C语言设计的,学好线性表的链表是你起步的关键。后面的树结构,图结构,排序,查找都少不了链式结构,往往这个也是最难的。

(5)看程序的时候一定要自己在纸上画画,最好先学会画程序的流程图,也许那样你学程序也就会更快一些。

(6)数据结构是程序设计的最基本也是最有用的地方,学完之后你会受益匪浅的。

    2、数据结构学习的技巧

对于学习技巧,在这里引用李开复的话:

(1)学习数据结构的概念后对于抽象数据类型的设计参考C++ STL标准库中容器的设计.这样对于无论是数据结构的学习还有程序设计接口能力上都会有很大的提高。

(2)对于数据结构课程中很多时候都不太重视的顺序(数组)做存储的数据结构,希望大家还是要多留意这快的知识.对于有些场合需要考虑时间换空间的情况下需要考虑顺序存储结构。

(3)数据结构学习一定要自己独立完成代码实现,虽然有时候你理解内容了,但是实现上面还是会愈要很多困难的,解决这些困难会帮助你提高程序设计的能力的。

    3、建议

多听多看多问,因本课程的特点是概念多、涉及面广,内容比较抽象;因此建议大家随时听主讲老师的实时课件,多看主讲老师所给出的试题及详解,多到论坛探讨不懂的问题。

  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习数据结构与算法是计算机科学和软件工程的基础,它可以帮助你理解如何高效地组织和操作数据,以及设计出解决复杂问题的有效算法。以下是一些学习这门课程的步骤和建议: 1. **基础知识**:确保对基本的数学概念如离散数学(图论、排序和搜索)、逻辑思维和基础编程语言(如 Python、Java 或 C++)有扎实的理解。 2. **选择资源**: - **教科书**:经典教材如《算法导论》(Cormen, Leiserson, Rivest, Stein) 或《数据结构与算法分析》(Cormen, Leiserson, Rivest, Stein) 是深入学习的好资源。 - **在线课程**:Coursera、edX、MIT OpenCourseWare 或 Udacity 上有许多免费或付费的数据结构与算法课程。 - **教程和视频**:YouTube 和 GeeksforGeeks 等网站提供了许多易于理解的视频讲解。 3. **实践**: - **编程练习**:LeetCode、HackerRank、CodeSignal 这样的平台提供丰富的编程题库,可以边做题边学习。 - **项目经验**:尝试实现一些实际问题的数据结构解决方案,如搜索引擎索引、图算法等。 4. **理解核心数据结构**: - 数组、链表、栈、队列、树、图、哈希表等,要能灵活运用并理解它们的时间复杂度和空间复杂度。 5. **掌握常见算法**: - 排序算法(冒泡、选择、插入、快速、归并等)、搜索算法(二分查找、广度优先搜索、深度优先搜索等)、动态规划、贪心算法、回溯法等。 6. **理论与实践结合**:理论学习的同时,不断通过实际编程来验证和巩固理论知识。 7. **复习与巩固**:定期回顾已学内容,加深印象,并尝试用新学到的知识解决更复杂的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值