首页 >

c语言没有学好,如何学习数据结构? – 网络|

win7的字体怎么安装,网站域名注册如何填写,妈妈帮这个软件怎么样c语言没有学好,如何学习数据结构? - 网络|c语言没有学好,如何学习数据结构
  1. 数据结构的本质是一种思维,它的目标是将现实世界中各种各样的数据放入到内存中,在内存中操作这些数据,并尽可能优化这些存储方案和操作方法。

  2. 编程语言是将数据结构这种思维实现出来的一种工具。

而学习数据结构最重要的就是边学边做,只学习书上的思维方法不用编程语言写出来的话,效率将非常低下,就好比学习数据只看例题不做题,其实往往收获甚微。既然要边学习边实践,那么在学习数据结构之前,掌握一些基础的编程知识是很有必要的。


这里把个人的一些经验分享给题主。

零、快速学习基础C语言

前面说道,在学习数据结构之前,应该掌握一定的编程知识,但是不必精通某个语言,知道基本语法即可。题主可以去中国大学MOOC,或者网易云课堂上,找一个自己喜欢的课程,跟着视频把基础的语言过一遍,这里推荐浙江大学翁凯老师的C语言课程。链接:https://mooc.study.163.com/course/1000002011?tid=2001530003#/info

一、记住算法思想(是什么)

这一部分的目标是,你能给人说明白,什么是”堆栈“,什么是”平衡二叉树“等。题主应当形成长久记忆,存储到你的”硬盘“里,而不仅仅在学习的时候过了一遍你的”内存“。

第一步,记住数据结构最直观的东西。这种直观的记忆会在不知不觉中就完成,但为了更好的记住,还需去刻意记忆和偶尔的复习。

第二步,记忆该数据结构的定义与性质与特点等。例如,学习哈夫曼树的时候。哈夫曼树的定义:WPL(带权路径长度)最小的二叉树;哈夫曼树的特点:(1)没有度为1的结点(2)n个叶子结点的哈夫曼树共有2n-1个结点(3)哈夫曼树的任意非叶节点的左右子树交换后仍是哈夫曼树。关于”数据结构“,需要记忆的内容也需要自己在其中慢慢领悟。

二、进行大量相关编程练习,用编程语言去实现某一数据结构上的算法(怎么办)

必须承认,理解一个算法很容易,很容易在纸上去模拟一个算法的实现过程。但,具体实现,则是另一回事。一定得先自己思考,然后再去看书中给的编程语言实现。在偶看来,这一过程已经不属于“数据结构与算法”的内容了。而是你综合素质的体现,如何真正理解问题和用编程技巧实现,很考验自己。

三、”记住“特定情景下,利用某一特定的数据结构,去解决问题(为什么+怎么办)

每介绍一种数据结构,浙大数据结构与算法的MOOC课程都会有一个实际问题来作为“引子”,回答了“这种数据结构为什么会出现”。有的是为了实现特定的操作,有的是为了时间和空间上(大部分考虑的是时间复杂性)效率的更高。这些东西,大家也须理解记忆。

最终,希望题主能自己根据自己的理解,针对某个问题,熟练的给出下图这样的解决方案,偶认为就算是入门了。


c语言没有学好,如何学习数据结构? - 网络|
  • 上海高校的排名是怎样的,有何依据? - 网络|
  • 上海高校的排名是怎样的,有何依据? - 网络| | 上海高校的排名是怎样的,有何依据? - 网络| ...

    c语言没有学好,如何学习数据结构? - 网络|
  • c语言 输入多个(多个输入的处理方法及应用) - 网络|
  • c语言 输入多个(多个输入的处理方法及应用) - 网络| | c语言 输入多个(多个输入的处理方法及应用) - 网络| ...

    c语言没有学好,如何学习数据结构? - 网络|
  • C语言中如何给数组赋值(详解数组初始化和动态赋值方法) - 网络|
  • C语言中如何给数组赋值(详解数组初始化和动态赋值方法) - 网络| | C语言中如何给数组赋值(详解数组初始化和动态赋值方法) - 网络| ...