这本书将C语言本身的复杂度大量暴露在读者面前,代码中不断纠结于错误处理、动态内存分配、输入输出等等实际和数据结构本身思想不相干的内容,对于初学者而言恐怕会相当困扰。我觉得数据结构书,或者像clrs一样用纯伪码,或者用python这样语法简单的动态语言,这样才不至于身陷语言层面的复杂性导致只见树木不见森林。
不但如此,书中的代码风格也让人无语。比如,for循环后面的小括号里面塞进和循环控制无关的东西。再举个最简单的例子来说,比如朴素串匹配,和clrs比较一下,可读性高下立见。如果考试的时候从里面抽程序做读程题或者代码填空题,会相当郁闷吧。
有人说代码里有错误,我没有细看(这种代码看起来太费神了=.=),故未证实,大家小心就是。
另外,书中有一些应该涉及的内容没有提及,比如dijkstra/prim的堆优化(事实上书中就没有提及“优先队列”的概念),比如Bellman-Ford,等等。另外还有一些地方似乎不妥,比如将AVL和平衡BST的概念等同起来。
总之,书不差,但是不能完全依赖,更不能迷信。
另,这么多年了,这书除了封面,连内容的页数都不带变的,诶……
真搞不懂,这些基础理论需要变什么?除非冯氏体系结构发生变化。你看懂这本书了吗?很多东西需要自己思考,真搞不懂国内那么多人崇拜“算法导论”,其实很多人连这两本书的一半都没读完。人云亦云。老外,喜欢循序渐进,国内,喜欢提纲要领。文化不一样,写法不一样。都不错,就看自己的思维习惯了。
上大学,一定要学好英语!!! 国内淘 好书 就像 大海捞针!!! 这本还算 “可以” 的, 但是不建议看!!!
去找本国外经典书籍 看看吧!!! 免得误入歧途,走火入魔!!!
但是令人遗憾的是国内的大学的教学方式依旧没有什么改变,我看到伯克利分校在语言入门课程可以选修C、Python和Lisp,然而国内大学连教授自行选择教材的自由貌似都没有。
嗯,LZ说的不错,LSS也说的不错。但是我个人认为,终究还是要靠学生自己的努力,对计算机有爱的同学自然而然会去学习C语言之外的语言,来更加理解计算机科学,数据结构以及算法。而对计算机无爱的同学,即使给他世界上最优秀的教材亦是于事无补。
这是一本大学课本,大学通常都是教且只教一种计算机语言(而且大都是C)然后进接着就是数据结构。想让本书用Python不太现实,纯伪码也容易使人忘记C,所以只能用这种半C不C的语言。
这是一本好的大学课本,但不是一本好书。OK?