数据结构与算法分析 - 维斯

数据结构与算法分析

维斯

出版时间

2006-10-01

ISBN

9787115152336

评分

★★★★★
书籍介绍
《数据结构与算法分析:C++描述》秉承Weiss著全一贯的严谨风格,同时又突出了实践。书中充分应用了现代C++语言特性,透彻地讲述了数据结构的原理和应用,不仅使学生具备算法分析能力,能够开发高效的程序,而且让学生掌握良好的程序设计技巧。
AI导读
核心看点
  • 严谨剖析数据结构原理,结合C++实践
  • 透彻讲解算法分析与高效程序设计技巧
  • 涵盖ADT、树、图等核心结构与应用
适合谁读
  • 具备C++基础,需系统学习数据结构者
  • 计算机专业学生及准备求职的开发者
  • 希望深入理解算法底层逻辑的程序员
读前提醒
  • 建议配合英文原版阅读,译文偶有生硬
  • 需动手敲代码实现,切勿仅停留在阅读
  • 部分章节理论较深,需耐心结合实例
读者共识
  • 经典教材,条理清晰,讲解深入浅出
  • 代码实例丰富,封装良好,适合实战
  • 虽难度较高,但读完对思维启发极大

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "数据抽象类型(ADT)是一些操作的集合。抽象数据类型是数学的抽象;在ADT的定义中根本没有涉及如何实现操作的集合。这可以看成模块化设计的扩充。"
  • "对表的操作可以用数组来实现。但是需要对表的大小的最大值进行估计,通常需要估计得大一些,会浪费大量的空间。这是严重的局限,特别是存在许多未知大小的表的情况下。所以简单数组一般不用来实现表这种结构。"
  • "任何表的形式都能实现栈。"
  • "队列的基本操作时入队,它是在表的末端插入一个元素,还有出队,它是删除在表开头的元素。 队列一般被用于处理用概率方法计算用户排队预计等待时间,等待服务的队列。诸如此类的问题被称为排队论。"
  • "算法分析评估里面的N是代表输入数据的规模 对于大量数据的输入,链表的线性访问时间太慢,不宜使用。树这种数据结构的运行时间平均为O(log N)。树的一种自然的定义方式是递归方法。"
  • "具有相同父亲的节点为兄弟(sibling).一个树的深度等于它的最深树叶的深度,该深度总是等于这棵树的高度。 树节点的定义:将灭个节点的所有儿子都放在树节点的链表中。"
  • "树有很多应用。最流行的用法之一就是UNIX,VAX/VMS和DOS在内常用操作系统的目录结构。严格来说UNIX文件系统不是树,是类树(treelike)。"
  • "二叉树有许多与搜索无关的重要应用。主要用途之一就是在编译器设计领域。"
用户评论
入门利器
以前买了一本英文版的看过,里面基本都是用c++ template实现。
经典
真想抽出半年将这些数据结构和算法每个默写10遍。
【藏书阁打卡】目前已有第4版,用cpp11描述,比如这个版本的big three更新为了big five,Weiss这个系列内容其实相差并不大。还记得刚读时,觉得很牛很牛,有种相逢恨晚的感觉(读其他好书也同样的感觉)。再读其他算法书时,有种抄袭Weiss大作的感觉,不过读书就是要读不同作者的作品,对于同一个问题,往往他们可能会从不同角度来阐述,有时候因为背景知识问题,换种思路,接受起来会更加自然,因此Weiss的三本书(c,c++,Java)选择喜欢的任何一本即可。推荐和Peter Brass的 Advanced Data Structures一起对比读,两位作者阐述角度不尽相同,比如Binomial heaps这一章,甚至叫法都不一样,个人认为Peter的解释更好。
新版的书错别字有些多
还可以的
全英文的,看的有点吃力,结合这数据结构与算法分析(蓝色封面中文版的一起看的)
收藏