【提问】
老师,我想好好学一下数据结构,但现在我有一个问题,就是我先用的语言主要是java,我就想我学数据结构的话,那可以学习java版的数据结构,但是我去网上找资源,大部分都是找到c/ c++ 的资源, java的比价少。我想问的是 学习数据结构,是不是跟语言没多大的关系,如果去学习了 c 的数据结构,也就等同于我会 java 的数据结构了。还有就是,我该怎样去学习数据结构,才能把数据结构学好。请老师指点指点。
【回复】
数据结构的确是与语言没有直接关系的。现在用的数据结构教材都与语言结合得很紧了,二十多年前的数据结构教材,用得是伪代码。学计算机的,一定要知道,语言只是算法的一种表达方式,专业基础中的各门课程讲的是一般的原理,学习这些原理中获得的是开阔的眼界,超越语言超越平台。如果局限在一门语言中,这些原理未必不会知晓,但一种路线是从前人的经验中获得(有机会学习理论是多么幸运,能沉下心来学习也就显得可贵了),另一种路线是凭个人经验去体验和总结(这种体验映像最为深刻,也是一种有效的方法,尤其是对一些没有机会上大学的人。但这种方法,需要有意识地在实践中多加以思考,当然在一定时候要能通过阅读去学习理论)。任何学习其实都可以从这两种路线中找到结合点,看书+实践,将两者交替进行下去。看书,可以从自己正在使用的书籍开始,最高目标《算法导论》,实践,将正在看的书中的算法就能为代码,也可以找到使用算法的小应用去做一做,甚至在熟悉算法的情况下,将用C写的算法你用Java实现,这样你更能体会到抛开语言限制的算法味道。我做过一个讲座,讲如何跨过程序和算法之间的那道沟,可以参考,链接是:http://blog.csdn.net/sxhelijian/article/details/7972827。
Java版数据结构的资料确实比C/C++的少,但只是相对少。其实只要找到适合自己的,也就不必贪图占有太多的资源了。毕竟,最终能成为自己的能力的那一部分,并不是和占有的资料有太大的关系。