怎样才能真正学好数据结构?大家讨论一下学习方法呢?
说实话,学习数据结构快一年了,看了三本书,严蔚敏,殷人昆,william ford,总觉得自己很难把握书上所有
的内容,譬如时间复杂度的分析方法,典型的是以双散列法实现的哈希表的
时间复杂度分析,觉得分析起来好难,书上列出的数学推导也好难...
另外,这一年里,我用c++自己编写和实现了几乎所有的抽象数据类型和算法,
每一个抽象数据类型都写成一个类模板,每个算法都以 成员函数集成了进去,
在这里想说一下的是,我编写的代码不是照搬书上的代码,而是每个算法的
实现都是在读完书上的思想之后完全靠自己编写的,所以学的很累,一年中,写的
代码的行数已经超过了五万多行,就连一些不常见的数据结构和算法,例如跳表,广义表,
并查集,折叠算法...我都是自己实现了,还包括一些譬如已知结点地址通过中序线索求
其父结点地址的非递归算法这些比较冷僻的算法,我都用自己的心血实现了...
可问题出在这里:
(1)虽然很多的算法都是自己编写的,刚编写完,调试成功,觉得体会深刻,可仍然会遗忘,
譬如对于一个曾经编写过的算法时隔几个月再次编写仍要考虑很长时间...
(2)觉得虽然掌握了算法的思想,但是对算法的时间复杂度的分析却觉得挺难的,简单的算法还好,
一些复杂的算法就 无从下手了...
(3)如果让我去做一些算法课程设计等实践的东西肯定没有问题,可是让我去应试却又不行了,高程
虽然过了,但做起研究生试题来却很不好...
PS:说实话,看着这一年来自己实现的数据结构的类模板和方法,很有成就感,可面对自己刚才的问题
却觉得尴尬,觉得自己这一年来只是片面提高了编程能力,可是对算法的领悟却仍然处于初级阶段...
大家说说看法呢?洗耳恭听...