2007-06-27
我恩师写的《数据结构与算法(JAVA语言版)》 提供下载 书+源码
关键字: 数据结构
我恩师写的《数据结构与算法(JAVA语言版)》,这本书现在还没有出版,欢迎大家评阅
下面是这本书的一点简单说明:
教材说明
教材的特点:
在C语言作为教学语言时期,数据结构几乎都是用C语言来描述其算法。Java语言诞生后,以其功能完备及跨平台等特性,逐渐为计算机领域广大科技工作者所偏爱。因此,用Java语言来描述数据结构及其算法,有着很重要的现实意义。
1. 本教材使用Java语言来描述数据结构与算法是一个重要的特点。目前使用Java语言描述数据结构的教材不多,并且以影印版和翻译本居多。
2. 在有些教材中有些只是简单的使用Java语法给出相应的程序,并没有将面向对象的设计方法与数据结构的抽象数据类型有效的结合起来,而在这方面做得较好的是邓俊辉编著的教材,但难度较大。本教材在难度上和使用面向对象的设计方法上有所把握,较适合普通高校本科生。
3. 在内容的安排上参考经典教材《数据结构 c语言版》(作者:严蔚敏)的体系结构,针对日常教学对内容进行安排和选择,进一步强调了算法部分,而将在实践中运用较少的内容进行了删减。
6月30日更新:加上了这本书的源码
希望大家多多提建议,如果有问题,可以直接发邮件到周老师的邮箱:peakzhou@21cn.com
这位老师非常热心哦
- 19:56
- 浏览 (11120)
- 论坛浏览 (11980)
- 评论 (29)
- 发布在 读书空间 圈子
- 相关推荐
评论
whygod 写道
那老师说得其实不错。
不必苛求书的内容是否完全原创,算法的基础本来就那么几样。这是一本教科书,又不是完全创新的科学著作。
另外,算法本来就是先要背熟然后融汇贯通的。大家忘了读书时背乘法口诀背公式吗?
不必苛求书的内容是否完全原创,算法的基础本来就那么几样。这是一本教科书,又不是完全创新的科学著作。
另外,算法本来就是先要背熟然后融汇贯通的。大家忘了读书时背乘法口诀背公式吗?
谁告诉你算法要背的?
你把动态规划给我背背看
cowskin 写道
首先我来说说语言和数据结构的关系:其实学习数据结构什么语言都一样,关键是锻炼一个逻辑思维能力和学习一些好的解决问题的思想。但是对于学生而言在第一次接触这门课程时他们是无法了解这一点的,如果他们学的语言是Java,而你用C去讲,或他们学的是C你用Java去讲,都会让学生很难接受。
其次,数据结构本身与面向对象之间没有任何冲突,反而我觉得用面向对象的语言来描述数据结构反而十分合适,每一种数据结构不都是一个接口(需要用类去实现)吗,Java不是已经实现了各种数据结构吗。
最后,我希望这本书能在以下几个方面对学生有所帮助:
1.在学习Java基本语法的基础上,能够进一步熟练使用所学编程语言来表达自己的思想。(任何语言都是用来表达思想的,包括自然语言和机器语言)
2.虽然多数据结构在Java中都有所实现,我们仍然学习数据结构的实现,是因为在数据结构的实现中我们能够学到许多好的解决问题的思想,这些东西在任何时候对我们都是有帮助的。
3.在前期课程学习了Java基础的前提下,进一步体会Java面向对象的编程思想。因为每种数据结构都可以抽象为一个接口,我们就是在实现这些接口。其实现在的学生根本就没有面向过程的思想,这对他们来说也是一件好事,所以不用太过担心他们在思想的理解中会遇到很多困难,其实面向对象的思想是一种非常自然的思想,要接受和理解并不困难,即使你原来是面向过程的思想。如果说学生本来就没有面向过程的思想,你把面向过程和面向对象思想之间的区别讲得再多,他也不明白,甚至更糊涂。-----
以上这些话来是周鹏老师的回复,因为他没有帐号我帮他发了
其次,数据结构本身与面向对象之间没有任何冲突,反而我觉得用面向对象的语言来描述数据结构反而十分合适,每一种数据结构不都是一个接口(需要用类去实现)吗,Java不是已经实现了各种数据结构吗。
最后,我希望这本书能在以下几个方面对学生有所帮助:
1.在学习Java基本语法的基础上,能够进一步熟练使用所学编程语言来表达自己的思想。(任何语言都是用来表达思想的,包括自然语言和机器语言)
2.虽然多数据结构在Java中都有所实现,我们仍然学习数据结构的实现,是因为在数据结构的实现中我们能够学到许多好的解决问题的思想,这些东西在任何时候对我们都是有帮助的。
3.在前期课程学习了Java基础的前提下,进一步体会Java面向对象的编程思想。因为每种数据结构都可以抽象为一个接口,我们就是在实现这些接口。其实现在的学生根本就没有面向过程的思想,这对他们来说也是一件好事,所以不用太过担心他们在思想的理解中会遇到很多困难,其实面向对象的思想是一种非常自然的思想,要接受和理解并不困难,即使你原来是面向过程的思想。如果说学生本来就没有面向过程的思想,你把面向过程和面向对象思想之间的区别讲得再多,他也不明白,甚至更糊涂。-----
以上这些话来是周鹏老师的回复,因为他没有帐号我帮他发了
计算机系的学生不学面向过程???
天哪,自费武功
说白了,数据结构,算法和什么思想有啥关系?画个图都明白了。对吧。出书是为了评职称?还是混稿费?
liuyifan.com
2007-08-28
回复
写的不错,不过对大多数写业务代码的JAVA程序员,实用价值不大,当个教材教教学生还是可以的
hellsing42
2007-08-27
回复
leadyu 写道
天啊,JAVA描述数据结构,对JAVA的误区够大了,还。。。
有本事你也写一个.....这个世界上没有所谓的误区,所谓误区是那些思想保守的人定义的,有能力拿汇编写个描述数据结构的也可以,语言都是相通的,没有什么误区不误区的.量子理论刚出来的时候也被人叫做误区,最后还不对世界做出了极大的贡献
leadyu 写道
可能我这种说法比较极端,我个人也不反对学习数据结构,甚至觉得他是一个很重要的基础课,通过它锻炼学生思维以及解决问题的能力。就像我面试应届生的时候,都喜欢出一些C语言算法题来考验应试者的逻辑思维能力。
毕竟学生的实践经验尚浅,问太多涉及语言,涉及经验的问题很难区分优劣。有好的逻辑思维能力再加上肯钻研的精神,很多东西是一通百通,进步很快的。
但是,我只是想说,大学教育除了告诉学生基础以外,更应该教会他们方法论,先进的思想。而JAVA语言本身是做什么的,在什么背景下产生的,思想是什么,这些需要告诉学生。就像think in java一样,它不会用java去描述数据结构也不会用数据结构去描述java。
java有的就是对象。对象高于数据结构,是抽象,数据结构是实现。两种不同的思维角度。有太多太多喜欢从实现去描述抽象,这是不是学校教育的影响呢?还是?这种方法论带来的问题,我想有过切身体会的人自然明白。
可能很多人觉得这些道理谁都明白,拿出来说就俗了,可是我想道理都明白,实践起来有几个人可以拍胸脯说,我们就是这样做的。
毕竟学生的实践经验尚浅,问太多涉及语言,涉及经验的问题很难区分优劣。有好的逻辑思维能力再加上肯钻研的精神,很多东西是一通百通,进步很快的。
但是,我只是想说,大学教育除了告诉学生基础以外,更应该教会他们方法论,先进的思想。而JAVA语言本身是做什么的,在什么背景下产生的,思想是什么,这些需要告诉学生。就像think in java一样,它不会用java去描述数据结构也不会用数据结构去描述java。
java有的就是对象。对象高于数据结构,是抽象,数据结构是实现。两种不同的思维角度。有太多太多喜欢从实现去描述抽象,这是不是学校教育的影响呢?还是?这种方法论带来的问题,我想有过切身体会的人自然明白。
可能很多人觉得这些道理谁都明白,拿出来说就俗了,可是我想道理都明白,实践起来有几个人可以拍胸脯说,我们就是这样做的。
java里还有int,long这种“对象”……
数据结构里的树,树上的Node,算不算对象?
gm8pleasure
2007-08-22
回复
Java的各种数据结构都比较完善了,如Map、List等都已经写好了,其实可能还是算法比较重要。
junzhonxiaozi
2007-08-13
回复
真是太感谢了,写的很不错,值得一看
那老师说得其实不错。
不必苛求书的内容是否完全原创,算法的基础本来就那么几样。这是一本教科书,又不是完全创新的科学著作。
另外,算法本来就是先要背熟然后融汇贯通的。大家忘了读书时背乘法口诀背公式吗?
不必苛求书的内容是否完全原创,算法的基础本来就那么几样。这是一本教科书,又不是完全创新的科学著作。
另外,算法本来就是先要背熟然后融汇贯通的。大家忘了读书时背乘法口诀背公式吗?
简单看了下书,
所有的内容 于严老师的《数据结构》 无二。基本就是照搬过来。
此书的价值就体现在是前面有一些java基本介绍,例子用java代码实现的。确实 数据结构是一门理论加实践的课程,用一门熟悉的语言来学习是比较合适的。
但就此而言,此书的价值和含金量比较低。
所有的内容 于严老师的《数据结构》 无二。基本就是照搬过来。
此书的价值就体现在是前面有一些java基本介绍,例子用java代码实现的。确实 数据结构是一门理论加实践的课程,用一门熟悉的语言来学习是比较合适的。
但就此而言,此书的价值和含金量比较低。
challenge2007
2007-07-31
回复
正所谓厚积勃发,积累的东西多了,再加以整理。一定有用
当初学c语言版的数据结构,老师只注意讲思想,上机的时候学生只注意自己用c实现的代码能不能跑通。结果目标不一致,效果自然也不会多好。
如果直接用java来讲的话,实现很简单。这样就可以有更多的时间来理解数据结构的思想。
不管到什么时候,解决问题的思想才是最重要的。
如果直接用java来讲的话,实现很简单。这样就可以有更多的时间来理解数据结构的思想。
不管到什么时候,解决问题的思想才是最重要的。
wilddonkey
2007-07-21
回复
无论如何都要下载下来看一下,支持了
首先我来说说语言和数据结构的关系:其实学习数据结构什么语言都一样,关键是锻炼一个逻辑思维能力和学习一些好的解决问题的思想。但是对于学生而言在第一次接触这门课程时他们是无法了解这一点的,如果他们学的语言是Java,而你用C去讲,或他们学的是C你用Java去讲,都会让学生很难接受。
其次,数据结构本身与面向对象之间没有任何冲突,反而我觉得用面向对象的语言来描述数据结构反而十分合适,每一种数据结构不都是一个接口(需要用类去实现)吗,Java不是已经实现了各种数据结构吗。
最后,我希望这本书能在以下几个方面对学生有所帮助:
1.在学习Java基本语法的基础上,能够进一步熟练使用所学编程语言来表达自己的思想。(任何语言都是用来表达思想的,包括自然语言和机器语言)
2.虽然多数据结构在Java中都有所实现,我们仍然学习数据结构的实现,是因为在数据结构的实现中我们能够学到许多好的解决问题的思想,这些东西在任何时候对我们都是有帮助的。
3.在前期课程学习了Java基础的前提下,进一步体会Java面向对象的编程思想。因为每种数据结构都可以抽象为一个接口,我们就是在实现这些接口。其实现在的学生根本就没有面向过程的思想,这对他们来说也是一件好事,所以不用太过担心他们在思想的理解中会遇到很多困难,其实面向对象的思想是一种非常自然的思想,要接受和理解并不困难,即使你原来是面向过程的思想。如果说学生本来就没有面向过程的思想,你把面向过程和面向对象思想之间的区别讲得再多,他也不明白,甚至更糊涂。-----
以上这些话来是周鹏老师的回复,因为他没有帐号我帮他发了
其次,数据结构本身与面向对象之间没有任何冲突,反而我觉得用面向对象的语言来描述数据结构反而十分合适,每一种数据结构不都是一个接口(需要用类去实现)吗,Java不是已经实现了各种数据结构吗。
最后,我希望这本书能在以下几个方面对学生有所帮助:
1.在学习Java基本语法的基础上,能够进一步熟练使用所学编程语言来表达自己的思想。(任何语言都是用来表达思想的,包括自然语言和机器语言)
2.虽然多数据结构在Java中都有所实现,我们仍然学习数据结构的实现,是因为在数据结构的实现中我们能够学到许多好的解决问题的思想,这些东西在任何时候对我们都是有帮助的。
3.在前期课程学习了Java基础的前提下,进一步体会Java面向对象的编程思想。因为每种数据结构都可以抽象为一个接口,我们就是在实现这些接口。其实现在的学生根本就没有面向过程的思想,这对他们来说也是一件好事,所以不用太过担心他们在思想的理解中会遇到很多困难,其实面向对象的思想是一种非常自然的思想,要接受和理解并不困难,即使你原来是面向过程的思想。如果说学生本来就没有面向过程的思想,你把面向过程和面向对象思想之间的区别讲得再多,他也不明白,甚至更糊涂。-----
以上这些话来是周鹏老师的回复,因为他没有帐号我帮他发了
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子
最新评论
-
我恩师写的《数据结构与算 ...
whygod 写道那老师说得其实不错。 不必苛求书的内容是否完全原创,算法的基础 ...
-- by bcccs -
我恩师写的《数据结构与算 ...
lazy 写道算法太枯燥深奥了,即使我有多年的编程经验,也看不懂。 作为学生,只 ...
-- by bcccs -
我恩师写的《数据结构与算 ...
cowskin 写道首先我来说说语言和数据结构的关系:其实学习数据结构什么语言都 ...
-- by bcccs -
我恩师写的《数据结构与算 ...
想看看,謝謝提供!
-- by dcriori -
我恩师写的《数据结构与算 ...
发现 数据结构和算法还是有点难的哦~
-- by linxizeng







评论排行榜