好几年前就入手了《算法C++实现》,到现在都没看,断断续续在看《C++ Primer Plus》,一直没什么时间,只完成了一半。
最近学java,凭借着C++的基础,在网上看了点文档,就着手开始用java写代码。当我解Distances in Trees时,一如既往地简单粗暴去解决问题,写下了NWCK.java,当我写完程序之后,发现多半情况下是没有问题的,但在计算只有括号而没有逗号的树时,比如:
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))Pagophila_viridis))Ovis_cavirostris))))))))))))))))))))))))))))))))))))))))))))))))))))));
距离会被少算了2,我花了很多时间,才发现问题出在这里,又花了很多时间,实在没看出代码有什么问题,于是判断一下,没有逗号,距离就+2,我自己都觉得这样的代码太tricky。
于是哥怒了,正如Linus Torvalds所说:
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
为了存储树,我要学数据结构,在看了amazon上的书评,我选择了《data structures and algorithms in java》这本,港大图书馆有一堆java数据结构的书,偏偏就没有这本,于是我盯着电脑看电子版!花了一个月的时间,看完之后,并不后悔看瞎了狗眼,这本书总的来说,还是相当不错的,这类书通常看着都比较痛苦,但这本书一路看下来,还是蛮友好的,作者写了一些applet来演示,上面废话好多,我通常都是跳过,课后的题,我也没做。
看完了书,重新回到nwck的题上,于是有了NWCK2.java,使用了图来存储树,计算的代码更容易写了,逻辑也更加清晰了,这样有问题也容易debug,也容易扩展,而且程序的速度也提高了。
这里在定位节点的时候,实现了breadth first search,对于遍历的节点,使用Queue来存储,而Queue又是以之前写的LinkedList来实现。
有了这个数据结构,扩展起来也容易,加权树实现起来,也就是1个小时的事情。
始于nwck树解析的需求,到现在成功实现,希望这是告别屌丝码农的开始。
以上权当是《data structures and algorithms in java》的书评吧。
原文: http://ygc.name/2014/07/09/data_structures_algorithms/
data structures and algorithms
《Java数据结构和算法》热门书评
-
整体风格易于阅读,注重基础
4有用 0无用 raywalker 2013-08-11
刚看完Chap6 Recursion 递归这一章,作者在阐述解答问题时采用由浅入深的方式进行,建议在看最后的代码实现时可以先尝试给出自己的答案,增强对整个过程的思考。 另外也许作者是为了避免学术性的数学公式的证明,对算法复杂度的计算只是以文字推断的形式给出来,个人以为学习时可以结合《算法导论》中的相...
-
data structures and algorithms
4有用 0无用 YGC 2014-07-09
好几年前就入手了《算法C++实现》,到现在都没看,断断续续在看《C++ Primer Plus》,一直没什么时间,只完成了一半。最近学java,凭借着C++的基础,在网上看了点文档,就着手开始用java写代码。当我解Distances in Trees时,一如既往地简单粗暴去解决问题,写下了NWCK...
-
有好有坏
2有用 2无用 乜广仇 2014-02-26
优点是这本书讲的很清晰易懂,分析的很透彻,对于初学数据结构和算法是很好的推荐缺点是中文版翻译的实在是太差了,有的地方不对照英文版根本不知道在说什么,遇到很多处这样的情况了真是不能忍。感觉书中的例子代码写的也不够好,不如文字解释的那么清楚。之所以没有放弃这本书看别的是因为它的文字叙述写的真的很好,麻烦...
-
A friendly book to beginner
2有用 0无用 李没有乱七八糟 2014-06-22
灰常好的一本书,浅显易懂,amazon上面评价也比较高。初学数据结构两天读完。但是在它的applet上面讲了太多废话。而且写的一些示范例子比较臃肿,但是无碍它非常适合入门。同期看了MT/RT的同题材书,虽然cs61b很推荐。但是对于初学者非常不友好。真心看不下去。我觉得看完这本 直接看 introd...
-
细致入微 入门必读
1有用 0无用 兴一神境 2016-11-19
数据结构的书也翻阅了不少,这本书可以说是最详细的。在我看来一本好的技术书就是废话多,只有高信息量的冗余才能让读者更清晰的理解,像清华那本广受推崇的数据结构书,薄薄一本,满是精华,但是对初学者来说实在是艰涩难懂。这本书一个是代码结构清晰,注释丰富,并且配合了小程序给读者对算法的直观感受,非常适合初学者...
书名: Java数据结构和算法
作者: 拉佛
出版社: 中国电力出版社
译者: 计晓云
出版年: 2004-02-01
页数: 560
定价: 55.00元
装帧: 平装
ISBN: 9787508319117

