读书人

怎么学习数据结构(@turingo)

发布时间: 2013-01-28 11:49:56 作者: rapoo

如何学习数据结构(@turingo)?
在学习数据结构,理论性的东西倒能看懂,比如插入排序和快排是如何实现的。但是看代码就有点,写更是无从下手。也就是说,知道一个原理,但不能用代码实现。这个要怎么办?是因为对语言的语法还不够熟练吗?
PS. 包括,一些其它的问题也是,有时候题目也会给出一些提示,自己也是按这个思路去想的,但就是不知道怎么用代码写出来。
求前辈们指点,多谢!
[解决办法]
>这个要怎么办?
多写
>是因为对语言的语法还不够熟练吗?
不只是语法。语言本身不够熟练。
[解决办法]
单步执行比较好吧
[解决办法]
不会就画图!多练练代码!
[解决办法]
知道原理是第一步,第一次不知道,就抄,吵多了就会了
[解决办法]
先学好一门语言的基本语法什么的,然后先照着人家书上的抄代码,最后自己多写
[解决办法]
眼高手低?
多练习吧。

[解决办法]
为什么要有数据结构这个东东?
因为要将现实世界或者抽象理论中的各种数据保存在计算机外存(光盘、硬盘、U盘……)或内存(ROM、RAM、SRAM……)里面的二进制字节数组中。
然后让CPU这个只会执行预先保存好的加减乘除移位条件转移……等机器指令的家伙按照人的意志去处理这些数据。至于具体如何处理就是所谓算法。

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

[解决办法]
我大二,这个学期刚学完数据结构,有关心得分享下:
学数据结构之前都要先有一门熟悉并熟练使用的语言,我学的是C/C++的,结构也是用C++作了封装。
首先你要知道为什么要有数据结构呢?数据结构中的一些常用的结构,顺序表,栈,队列,这三个你能独立的写出来源代码吗?如果你仅仅是懂原理,那我想说的是栈就是LIFO(Last In First Out),一句话可以概括了。但是基于原理背后的实现LZ可以做到吗?
有这么一个理论:
计算机程序设计语言就是提供了一个人与计算机交流的工具,如果哪天计算机能听懂人话了那就不需要编程语言了,更不需要程序员了,当然这些是几乎不可能的,扯远了。作为写代码的我们,如果你能把一个程序的逻辑与细节先想清楚,那么至于代码就不是问题了,写代码的过程就是把自己的思维转换成计算机能理解的形式而已。你说你能看懂却实现不了,那可能是你的语言不过关,这是很可怕的,学数据结构的前提就是需要一个熟练使用的语言做支持的。要么就是你还不能深刻理解这原理。后者的可能性更大,所以不要眼高手低,要多看多思考,每一个结构的背后都是有原因的,多动手写代码,多动手去实现一些自己明白的原理,在实现的过程中你会发现你自己其实不那么清楚原理。这是我深刻的教训,希望对你有帮助


[解决办法]
这样的情况说明动手和实践太少,从以下两个方面去努力:
1、捡起你的笔,在纸上多画画逻辑和流程图,直到真正的理解透彻;
2、用代码去实现你在纸上已经演练好的逻辑流程,对于不明白的代码细节,设置断点用调试器单步跟踪和执行,并随时观察重要变量和结构的值。

引用:
在学习数据结构,理论性的东西倒能看懂,比如插入排序和快排是如何实现的。但是看代码就有点,写更是无从下手。也就是说,知道一个原理,但不能用代码实现。这个要怎么办?是因为对语言的语法还不够熟练吗?
PS. 包括,一些其它的问题也是,有时候题目也会给出一些提示,自己也是按这个思路去想的,但就是不知道怎么用代码写出来。
求前辈们指点,多谢!

……

[解决办法]
我也在学,也经常看不懂。看不懂我就不停的单步调试,不停的思考。
实在想不通,就google一些其它的资料,看有没有更好理解的代码或者文章。
一遍一遍反复看,总会弄懂的。弄懂了,再尝试自己写,写不出来,就再去看别人的。
总之坚持,就肯定能把只是解决掉。-_-

读书人网 >C++

热点推荐