鱼C论坛

 找回密码
 立即注册
查看: 8665|回复: 7

[已解决]学习数据结构要不要背代码

[复制链接]
发表于 2021-5-18 19:01:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想问一下大家,学习数据结构的时候,是要把所有的代码都能自己直接熟练写出来吗?还是理解含义知道原理就可以了?
目前大一正在学数据结构,感觉像线性表什么的,都知道原理,但是如果想徒手毫无错误的写出来就很艰难,不能完全不看书,而且它们的代码又很多,不看书就会出现各种零零碎碎的错误,理一遍下来也挺费时的
就想问问有没有必要花时间把这些代码都练熟啊?
希望大家踊跃回答哈哈哈
最佳答案
2021-5-29 00:28:51
先说句抱歉,手机上手滑点了踩。点个赞表示歉意。

对于数据结构,以我的经验来说,
第一,从种类上要求掌握线性表,链表,栈,队列,堆,树,图等基础数据结构,注意以上都是基础。
第二,从概念上要求掌握各种结构的优缺点,适用场景,就是说给你一个问题,要知道应该试用那种结构,避免使用哪种。
第三,从编码上,基本的curd必不可少,从上机到手写。
第四,从学习方法上,编码能力是需要培养的,如果没有特别聪明的头脑,那就请一遍一遍的抄写代码,就像学语文一样。很多人学数据结构都有一种感觉,听老师讲时啥都明白,甚至于能抢答,但是等自己回忆的时候就感觉总是差点意思,如果说再要你写代码,可能都会让你怀疑自己。所以,此时就老老实实抄吧,从抄写到默写,到把代码刻在脑海里,千万不要机械般抄写,要往脑子里记。等记住之后,再反过来加强理解。书读百遍其义自见。
第五,初学数据结构阶段应避免编程语言的干扰。因为数据结构的关注点为数据之间的逻辑关系。就比如,神书算法导论全篇使用的都是伪代码。在入门阶段,学一门知识就应该只有一个关注点。假如,你使用一门你不熟练的语言学数据结构,你该如何确定你的错误是由于语言不熟练导致的,还是数据结构的逻辑错误导致的。

如果还有疑问,可以私信我你的联系方式,方便交流。
就这样。

评分

参与人数 1荣誉 +1 收起 理由
赚小钱 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-18 19:31:37 | 显示全部楼层
看你要做什么?如果是应付考试,那肯定得背啦,不背答案怎么能拿满分?
如果你是真的想学会编程,那么背代码没有任何意义
学习数据结构之前非常建议先学一下汇编语言,一定是8086的汇编语言,win32的不行
数据结构就是数据在内存中的存储方式
哪一个放在前面,哪一个在后面,哪一个占几个字节,哪一个指向哪一个
学了汇编语言再学数据结构就是如虎添翼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 19:35:19 | 显示全部楼层
都知道原理,但是如果想徒手毫无错误的写出来就很艰难
说明你代码写的少,熟能生巧听过吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 19:45:54 | 显示全部楼层
不看书就会出现各种零零碎碎的错误
学着看编译器给出的警告信息和错误信息
不然编译器辛辛苦苦帮你检查出的问题,你却完全抛弃,把你的编译器配置为最高级别的警告,另外在加上一些内存检查工具,例如 libasan,就是尽可能的让编译器帮你找出问题,不管你写代码的时候有多么的认真,也无法避免错误,让编译器帮你检查问题不是很好么
学着百度你遇到的问题,先从 把编译器给出的提示直接复制到百度的那个搜索框框中开始
看不懂英文也没关系,因为有 有道翻译、百度翻译
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-19 10:28:04 | 显示全部楼层
人造人 发表于 2021-5-18 19:45
不看书就会出现各种零零碎碎的错误
学着看编译器给出的警告信息和错误信息
不然编译器辛辛苦苦帮你检查出 ...

所以还是要多写才会有效吗?现在就是如果花太多时间去重复好几遍练熟代码的话,就会跟不上学校进度,所以才会纠结要不要花时间练熟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-19 10:29:14 | 显示全部楼层
人造人 发表于 2021-5-18 19:31
看你要做什么?如果是应付考试,那肯定得背啦,不背答案怎么能拿满分?
如果你是真的想学会编程,那么背代 ...

哇,现在就要开始接触汇编了吗,听说特别难来着,我去看看去哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-29 00:05:42 From FishC Mobile | 显示全部楼层
人造人 发表于 2021-5-18 19:31
看你要做什么?如果是应付考试,那肯定得背啦,不背答案怎么能拿满分?
如果你是真的想学会编程,那么背代 ...

这是什么误人子弟的回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-29 00:28:51 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
先说句抱歉,手机上手滑点了踩。点个赞表示歉意。

对于数据结构,以我的经验来说,
第一,从种类上要求掌握线性表,链表,栈,队列,堆,树,图等基础数据结构,注意以上都是基础。
第二,从概念上要求掌握各种结构的优缺点,适用场景,就是说给你一个问题,要知道应该试用那种结构,避免使用哪种。
第三,从编码上,基本的curd必不可少,从上机到手写。
第四,从学习方法上,编码能力是需要培养的,如果没有特别聪明的头脑,那就请一遍一遍的抄写代码,就像学语文一样。很多人学数据结构都有一种感觉,听老师讲时啥都明白,甚至于能抢答,但是等自己回忆的时候就感觉总是差点意思,如果说再要你写代码,可能都会让你怀疑自己。所以,此时就老老实实抄吧,从抄写到默写,到把代码刻在脑海里,千万不要机械般抄写,要往脑子里记。等记住之后,再反过来加强理解。书读百遍其义自见。
第五,初学数据结构阶段应避免编程语言的干扰。因为数据结构的关注点为数据之间的逻辑关系。就比如,神书算法导论全篇使用的都是伪代码。在入门阶段,学一门知识就应该只有一个关注点。假如,你使用一门你不熟练的语言学数据结构,你该如何确定你的错误是由于语言不熟练导致的,还是数据结构的逻辑错误导致的。

如果还有疑问,可以私信我你的联系方式,方便交流。
就这样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-4 23:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表