数据结构与算法分析
作者: [美] Mark Allen Weiss
出版社: 人民邮电出版社
副标题: C++描述(第三版)
译者: 张怀勇
出版年: 2007年
《数据结构与算法分析:C++描述(第3版)》是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。《数据结构与算法分析:C++描述(第3版)》适合作为计算机相关专业本科生的数据结构课程和研究生算法分析课程的教材。本科生的数据结构课程可以使用《数据结构与算法分析:C++描述(第3版)》第1章~第9章,多学时课程还可以讲解第10章;研究生算法分析课程可以使用第6章~第12章。
这种程度的书确实很少能见到了。它不在简单的地方无谓的浪费笔墨,恰到好处的把初学者带入算法和数据结构的世界。它基本上涉及了数据结构基础的“方方面面”。很难想象这书的厚度,居然能讲这么多内容(你看看算法导论有多厚就知道我在说什么了)。它在内容上并不乏深度。高级数据结构部分并不容易,如果你第一次就全部耐心看完,我也不得不怀疑那是不是真的。因为那些数据结构的额繁琐程度非同一般,如果你能随手码出其中的大半,就足以说明你的代码能力已经差不多出神入化了。最重要的是,你真的就感觉作者在你眼前给你说教一般,个人觉得,这本书真的算是一本有灵魂的书吧。甚至同一个问题在书中的不同位置出现,不断的被优化。此书很多高级部分,真的不得不佩服作者的编排,层层深入,尤其是二叉堆,斜堆,二项堆,Fibonacci堆那段。然后伸展树和Fibonacci堆又给联系起来了。均摊复杂度分析。。。。做到这种程度上,也就不难理解,为什么这个厚度的书,可以把这么多东西都讲这么详细~~~~~~这本书主要还是讲数据结构的,算法方面除非和所介绍的数据结构有很强的关系,否则一般都只是简单的介绍一下而已。
这本书真是非常好!个人感觉很适合给初学者入门看,里面的分析数学公式恰到好处,没有算法导论的令人望而生畏,也没有国内图书的草草了事,既学习了数据结构又有刚刚好的算法分析,很容易使人产生共鸣。
很好的一本书,给人的感觉像是做开发的人写的,不像其它很多数据结构的书仅仅是对数据结构做描述。
其中各种数据结构的实现具有很强的技巧性,很多都讲了在STL中的实现方法。不过推荐对数据结构有一定基础的人看可能它的实现方式理解起来会容易很多。
Thinking in C++
作者: [美] Bruce Eckel
出版社: Prentice Hall
副标题: Introduction to Standard C++, Volume One
出版年: 2000-3-25
这本书带领我走入了C++和面向对象的大门,Bruce Eckel独特的思路可以让读者理清面向对象的脉络,抓住面向对象的核心,同时又能学习到C++语言本身最重要的那些知识。
让我印象最为深刻的就是第一章就高屋建瓴地俯瞰了面向对象的核心思想。从抽象的演进讲到对象以及对象的接口,再慢慢揭开面向对象的核心:封装(信息隐藏),继承,多态。结合一些容易理解的示例(以Shape和Circle,Square的关系来讲解的,至今它仍是我最喜欢引用的关于继承和多态的例子),同时避开语言的细节,Bruce Eckel把面向对象的思想展现在读者面前。最后,Bruce还提到了异常处理,分析设计以及极限编程,并以C++为什么成功这一主题作为第一章的结束
虽然C++领域的经典书籍犹如过江之鲫、车载斗量,但其中的可供初学者入门的书籍却并不多。可能C++阵营里的牛人太多了,都不屑于写入门级新手教程。虽然Bjarne Stroustrup大叔说学习C++不需要学习C语言,但实践表明有C语言基础还是很有帮助的。另外大叔自己写的那本《The C++ Programming Language》初学者不要看!好了,如果你已有C语言使用经验,想要继续学习C++,那么有两本书值得推荐:《Thinking in C++》和《C++ Primer》,前者浅显易懂,后者广博渊深,都是学习C++良师益友。
最经典的C++书籍之一
适合在入门之后,在对整个C++的思维方式进行梳理
大牛的经典作品,一定要读
当做进阶的C++书籍来读,一定会有收获的
深入浅出MFC (第二版)
作者: 侯俊杰
出版社: 华中科技大学出版社
副标题: 使用Visual C++5.0 & MFC 4.2
出版年: 2001-1
深入浅出MFC》分为四大篇。第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。“学前基础”是相当主观的认定,但作者是甚于自己的学习经验以及教学经验,其挑选应该颇具说服力。第二篇介绍Visual C++整合环境开发工具。此篇只是提纲挈领,并不企图取代Visual C++使用手册;然而对于软件使用的老手,此篇或已足以帮助掌握Visual C++整合环境。工具的使用虽然谈不上学问,但在视觉化软件开发过程中扮演极重角色。第三篇介绍application framework的观念,以及MFC骨干程序,所谓骨干程序,是指Visual C++的工具AppWizard所产生出来的程序码。当然,AppWizard会根据使用者的选项做出不同的程序码,作者据以解说的是大众化选项下的产品。第四篇以微软公司附于Visual C++光碟片上的一个范例程序Scribble为主轴,一步一步加上新的功能;并在其间深入介绍Runtime Type Information(RTTI)、Dynamic Creation、Persistence(Serialization)、Message Mapping、Command Routing等核心技术。这些技术正是其他专著最缺乏的部分。此篇的最后数章则脱离Scribble程序,另成一格。
这本书的价值及影响力大于它本身所包含的知识量。为什么能这么说呢,因为它的出现奠定了侯捷先生在中国大陆程序员的影响力。反过来说,把侯捷先生更多的优点也“掩盖”了。好像后来的书再好也没有超过这本书。为什么。因为侯捷所翻译的书高阶的太多了,市场是固定的。但从另一方面可以看出来,就是在大陆,大部分的程序员有跟风情况出现。今天说C++好,那大家都跑去看,最可笑的是,我在北京,某出版社竟然还把C++之父请过来。C++之父我想受到中国人的邀请,肯定是高高兴兴来的。但我一定相信他在中国没有收到很多高兴的信息。然后又出来JAVA潮,然后使用OOAD的理论让我都有点晕了。我想我还是作一个小小的coder吧。慢慢来,天天编程就可以了。MFC管它好不好用,先学着使用上再说。就是有好东西咱就用。不要认为看了什么书就能成“神仙”了。
形而上者谓之道,形而下者谓之器。这本书我认为达到“道”的境界了,把MFC六大技术分析的透透彻彻。有人说MFC过时了,学这个浪费时间,没用。对这类人,我只能回一句“呵呵后”。设计这个框架的人该是多么聪明啊!退一万步讲,即使框架过时,但是里面涉及的运行时类型识别、动态创建、消息映射、命令传递,这几点的设计方式和来龙去脉,搞懂了,研究别的我认为可以举一反三。
通过这本书,让我对C++的多态性,以及早就学过宏有了深入的理解。我天!你知道吗,那些核心技术有的就是用两个宏实现的,巧妙地让人拍案叫绝!就像我开始说的,这本书到了道的境界,所以针对一些应用,这本书讲的不细,有的甚至没有涉及,比如windows socket编程,比如多线程同步等等,看得出侯老师在刹着写,因为即使没有那些,这本书就700多页了!这也跟这本书的定位有关吧。但是,MFC框架的各个重点技术,讲的绝对是巨细靡遗!这本书一个让我特喜欢的地方,就是感觉是循环往复逐渐加深的讲解这些核心技术,当你对前面知识淡忘的时候,你马上又要看到针对那个技术点的深入讲解了。
领取专属 10元无门槛券
私享最新 技术干货