感觉数据结构和算法这东西能看懂就行,头脑中有个印象,等用到的时候翻书能找到就行,不知道高手是怎么学的?
以前没好好学,现在想好好重学一下,但是感觉不出重点是什么,举个例子光是链表的不同的书就有不同的实现,但是基本功能也就那些:插入,删除...学习的重点应该放在哪呢??理解代码?还是什么?很困惑阿
[解决办法]
确实,能自己动手写出来是最重要的.
水平之间的差别不在于理解,也不在于应用,而在于创造.
因为程序员是以用程序解决问题为职业的,有些问题使用已有的算法(以及数据结构)就行了,有些则需要设计新的算法.自己动手写一个已经存在的算法,其目的不是为了工作(工作中对已有的算法只要直接使用就行了),而是为了锻炼自己设计新算法的能力.
理解一个算法,和自己能够写出它(不是抄写),是有本质差别的.比如我理解很多基本的数据结构和算法.但是让我第一次写一个算法(哪怕是最基本的),常常就会出很多的错,这就是差别.如果不克服它们,当设计一个新算法时,同样的问题还是会出现.
所以,只有自己写了算法(并测试它们,并与别人写的做比较)才能真正地锻炼能力,才能完成我们工作中最重要的事----设计新的算法.