世界著名计算机教材精选:数据结构基础(C语言版)(第2版) [FUNDAMENTALS OF DATA STRUCTURES IN C Second Edition]

世界著名计算机教材精选:数据结构基础(C语言版)(第2版) [FUNDAMENTALS OF DATA STRUCTURES IN C Second Edition] pdf epub mobi txt 电子书 下载 2025

[美] 霍罗维兹 等 著,朱仲涛 译
图书标签:
  • 数据结构
  • C语言
  • 教材
  • 计算机科学
  • 算法
  • 数据存储
  • 数据组织
  • 经典教材
  • FUNDAMENTALS OF DATA STRUCTURES
  • 第二版
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302186960
版次:1
商品编码:10079739
品牌:清华大学
包装:平装
外文名称:FUNDAMENTALS OF DATA STRUCTURES IN C Second Edition
开本:16开
出版时间:2009-03-01
用纸:胶版纸
页数:470
正文语种:中文

具体描述

编辑推荐

  (1)用C作为描述语言,
  (2)介绍基本数据结构和高级或特殊数据结构,如优先级队列、高效二叉查找树、多路查找树等。
  (3)对大多数算法都给出了计算时间在zuiyou、zui差情形下的复杂度分析。

内容简介

  本书是经典数据结构教材的全新版本,国内外大多数的同类教材都是以本书为蓝本编写而来的。
  本书用C作为描述语言,全面而生动地介绍了数据结构的有关知识,如数组、栈、队列、链表、树和图,以及构成所有软件基础的排序散列技术。此外,本书还介绍了各种高级或特殊数据结构,如优先级队列、高效二叉查找树、多路查找树等。本书对大多数算法都给出了计算时间在很优、很差情形下的复杂度分析。
  本书不仅可以作为计算机及相关专业本科生“数据结构”课程的教材,也可以作为研究生一学年的“高等数据结构”课程的教材,同时,本书所介绍的各种算法的C语言实现,对有关专业人员也具有很好的参考价值。

作者简介

  Ellis Horowitz,是南加州大学计算机与电子工程系的教授。Horowitz博士已编著了10多本教材,并发表了大量学术论文。
  Sartaj Sahni是佛罗里达大学计算机与信息科学系的杰出教授和讲座教授。Sahni博士已发表300多篇学术研究论文,编著了15本教材。
  Susan Anderson-Freed是伊利诺伊卫斯理大学计算机教授。她的研究领域是数据库管理系统、Web设计与开发。她毕业于诺伯特大学,并在印第安纳大学获得硕士和博士学位,以及在Bradley大学获得计算机理学地硕士学位。她从1977年起就供职于伊利诺伊卫斯理大学。

目录

第1章 基本概念
1.1 概观:系统生命周期
1.2 指针和动态存储分配
1.2.1 指针
1.2.2 动态存储分配
1.2.3 指针隐患
1.3 算法形式规范
1.3.1 综论
1.3.2 递归算法
1.4 数据抽象
1.5 性能分析
1.5.1 空间复杂度
1.5.2 时间复杂度
1.5.3 渐近记号(O,Q,)
1.5.4 实际复杂度
1.6 性能度量
1.6.1 定时
1.6.2 生成测试数据
1.7 参考文献和选读材料

第2章 数组和结构
2.1 数组
2.1.1 数组的抽象数据类型
2.1.2 c语言的数组
2.2 数组的动态存储分配
2.2.1 一维数组
2.2.2 二维数组
2.3 结构体和联合体
2.3.1 结构体
2.3.2 联合体
2.3.3 结构的内部实现
2.3.4 自引用结构
2.4 多项式
2.4.1 多项式的抽象数据类型
2.4.2 多项式的表示
2.4.3 多项式加法
2.5 稀疏矩阵
2.5.1 稀疏矩阵的抽象数据类型
2.5.2 稀疏矩阵的表示
2.5.3 矩阵转置
2.5.4 矩阵相乘
2.6 多维数组的表示
2.7 字符串
2.7.1 字符串的抽象数据类型
2.7.2 C语言的字符串
2.7.3 模式匹配
2.8 参考文献和选读材料
2.9 补充习题

第3章 栈与队列
3.1 栈
3.2 动态栈
3.3 队列
3.4 动态循环队列
3.5 迷宫问题
3.6 表达式求值
3.6.1 表达式
3.6.2 后缀表达式求值
3.6.3 中缀表达式转换成后缀表达式
3.7 多重栈与多重队列
3.8 补充习题

第4章 链表
4.1 单向链表
4.2 用C语言表示单向链表
4.3 链式栈与链式队列
4.4 多项式
4.4.1 多项式表示
4.4.2 多项式加法
4.4.3 销毁多项式
4.4.4 循环链表与多项式
4.4.5 小结
4.5 其它链表操作
4.5.1 单向链表操作
4.5.2 循环链表操作
4.6 等价类
4.7 稀疏矩阵
4.7.1 稀疏矩阵表示
4.7.2 输入稀疏矩阵
4.7.3 输出稀疏矩阵
4.7.4 销毁稀疏矩阵
4.8 双向链表

第5章 树
5.1 引论
5.1.1 术语
5.1.2 树的表示
5.2 二叉树
5.2.1 二叉树的抽象数据类型
5.2.2 二叉树的性质
5.2.3 二叉树的表示
5.3 遍历二叉树
5.3.1 中序遍历
5.3.2 先序遍历
5.3.3 后序遍历
5.3.4 非递归(循环)中序遍历
5.3.5 层序遍历
5.3.6 不设栈遍历二叉树
5.4 其它二叉树操作
5.4.1 复制二叉树
5.4.2 判断两个二叉树全等
5.4.3 可满足性问题
5.5 线索二叉树
5.5.1 线索
5.5.2 中序遍历线索二叉树
5.5.3 线索二叉树插入结点
5.6 堆
5.6.1 优先级队列
5.6.2 大根堆定义
5.6.3 大根堆插入操作
5.6.4 大根堆删除操作
5.7 二叉查找树
5.7.1 定义
5.7.2 二叉查找树的查找
5.7.3 二叉查找树的插入
5.7.4 二叉查找树的删除
5.7.5 二叉查找树的合并与分裂
5.7.6 二叉查找树的高度
5.8 选拔树
5.8.1 引子
5.8.2 优胜树
5.8.3 淘汰树
5.9 森林
5.9.1 森林转换为二叉树
5.9.2 遍历森林
5.10 不相交集合的表示
5.10.1 引子
5.10.2 合并与查找操作
5.10.3 划分等价类
5.11 二叉树的计数
5.11.1 不同态二叉树
5.11.2 栈置换
5.11.3 矩阵乘法
5.11.4 不同二叉树的数目
5.12 参考文献和选读材料

第6章 图
6.1 图的抽象数据类型
6.1.1 引子
6.1.2 图的定义和术语
6.1.3 图的表示
6.2 图的基本操作
6.2.1 深度优先搜索
6.2.2 广度优先搜索
6.2.3 连通分量
6.2.4 生成树
6.2.5 重连通分量
6.3 最小代价生成树
6.3.1 Kruskal算法
6.3.2 Prim算法
6.3.3 SoUin算法
6.4 最短路径和迁移闭包
6.4.1 单源点至所有其它节点:边权值非负
6.4.2 单源点至所有其它节点:边权值正负无限制
……
第7章 排序
第8章 Hash法
第9章 优先级队列
第10章 高效二叉查找树
第11章 多路查找树
第12章 数字查找结构
索引

精彩书摘

  第1章 基本概念
  1.1 概观:系统生命周期
  本书读者应具备扎实的结构化程序设计技能。要获得这些技能,读者通常应学过程序设计基础一类课程。这类课程的培养目标就是传授结构化程序设计技能,但课程强调的是语言本身的语法形式与语句使用规则,学生在这个阶段通常只能编写很简单的程序,解决的问题不用说也是很简单的。这类简单问题,一般而言,只要直接选用程序设计语言提供的某语句也许就能完成求解,例如,用数组存储数据,再利用while循环语句,可能就足以解决这一阶段的许多问题了。
  本书要指导读者向前迈一大步,大幅度提高编程能力,因为以后编写的程序,其规模要大很多,功能也要复杂得多。不用说,编写规模庞大而复杂的程序,不但需要更强有力的工具,还一定需要更高级的编程技术。我们希望在随后的学习过程,读者应扎实掌握数据的抽象思维方法,同时必须熟练掌握算法的规范声明、算法的性能分析、算法的性能评价等诸多技能。设置本章的目的就是要详细论述这些内容。此外,递归程序设计方法同样至关重要,读者也必须熟练掌握,因此也是本章讨论的内容,但论述得较为简明而且篇幅不很大。我们提请读者注意,如果读者以前对递归程序设计基础未给予足够重视,了解流于肤浅,那么必须仔细研读这方面内容,以后一定会深感大有益处。然而,在讨论各种工具与各项技术之前,我们必须强凋,编程可不仅仅是写程序代码,即写完一条条程序语句就万事大吉了。与之截然相反,优秀的程序员有完全不同的观点。程序设计的首要问题,应该是首先把大规模程序系统分解成许许多多自成体系且相对独立的组成部件,然后再为各部分之间存在的相互调用,定义严格的调用格式。
  ……

前言/序言

  《数据结构基础》是一本优秀的数据结构教材,取材全面,难易适中,内容组织合理,详略得当,深入浅出,而且论证逻辑性强,所以广为国内外高校计算机专业选用。此外,这本英文教材对国内许多数据结构教材的编写也有显著影响。此中译本是《数据结构基础》c语言版第2版的译本,与第1版相比,新版篇幅扩张很大,内容全面更新,全书覆盖①线性(序)数据类型、②树型数据类型、③网状数据类型,以及④排序算法与⑤查找算法。基本数据结构包括线性表(数组与链表)、栈与队列、树、图等经典内容,特点为运用抽象数据类型(ADT)观点一一呈现。另外,书中包含大量符合ANSIC标准的程序,实例丰富,习题众多,并有大量图表。《数据结构基础(C语言版)第2版》最鲜明的特点是:用几乎一半篇幅,即第8~12章,详细讨论了各种查找表结构及其查找算法,而且内容组织很新颖。这最后5章既包括查找法的经典内容,如Hash法和AVL树等;也包括数据结构研究的新进展,如分摊复杂度分析等;还包括当前数据结构研究的热点,即各种堆结构。这部分内容特别适合数据结构提高课程,也特别适合学过基本数据结构的读者自学提高。以下列出《数据结构基础(C语言版)第2版》有关查找的内容及其编排体系。


深入探索数据结构的核心原理与C语言实现 本书是一本经典的数据结构教材,专为希望深入理解计算科学基石的学生和开发者量身打造。它系统地阐述了各种基本数据结构的概念、理论以及在C语言中的实际应用。本书旨在帮助读者建立扎实的数据结构基础,从而能够设计、分析和实现高效的算法,为解决复杂的计算问题奠定坚实的基础。 核心内容概述: 本书从最基础的线性结构开始,逐步深入到非线性结构,并详细讲解了相关算法的设计与分析。 数组与字符串: 学习数组作为基本存储单元的应用,包括一维、多维数组的表示与操作。深入理解字符串的存储方式、常用操作(如查找、插入、删除)及其效率考量。 栈与队列: 掌握栈(LIFO)和队列(FIFO)这两种抽象数据类型(ADT)的定义、实现方法(基于数组或链表)以及在不同场景下的应用,例如表达式求值、函数调用栈管理、任务调度等。 链表: 详细介绍单链表、双链表和循环链表的结构与操作。理解链表相对于数组在动态增长和元素插入删除方面的优势,以及相关的遍历、查找、插入、删除等算法。 树: 深入学习各种树形结构,包括: 二叉树: 掌握二叉树的定义、遍历方式(前序、中序、后序),以及二叉搜索树(BST)的性质、查找、插入、删除操作,并分析其性能。 平衡二叉树: 介绍 AVL 树和红黑树等平衡树的概念,理解它们如何通过旋转等操作来维持树的平衡,从而保证查找、插入、删除操作的对数时间复杂度。 堆: 学习堆(最大堆和最小堆)的定义、性质以及在堆排序、优先队列等方面的应用。 图: 学习图的定义、表示方法(邻接矩阵和邻接表),以及图的遍历算法(深度优先搜索 DFS 和广度优先搜索 BFS)。深入理解图的重要算法,如: 最短路径算法: 学习 Dijkstra 算法和 Floyd-Warshall 算法,用于求解单源最短路径和所有顶点对最短路径。 最小生成树算法: 掌握 Prim 算法和 Kruskal 算法,用于构建加权无向图的最小生成树。 哈希表: 理解哈希函数的概念、冲突解决方法(如链地址法和开放地址法),以及哈希表在快速查找、插入和删除方面的巨大优势。 排序算法: 系统学习各种经典的排序算法,包括: 简单排序: 冒泡排序、选择排序、插入排序。 高效排序: 快速排序、归并排序。 特定排序: 堆排序。 对各种排序算法的时间复杂度和空间复杂度进行详细分析和比较。 搜索算法: 除了前面提到的树和哈希表的搜索,还包括线性查找和二分查找等基本搜索算法的原理和实现。 学习方法与特色: 本书最大的特色在于其严谨的理论讲解与丰富的C语言实践相结合。 清晰的理论阐述: 每个数据结构和算法的引入都伴随着清晰的数学定义、概念解释和伪代码描述,帮助读者理解其内在逻辑。 精炼的C语言实现: 所有数据结构和算法都提供了直接可运行的C语言代码示例,这些代码简洁、规范,易于理解和修改。读者可以通过阅读和动手实践,将理论知识转化为实际编程能力。 详尽的算法分析: 本书不仅介绍了算法,还对它们的效率进行了深入的分析,包括时间复杂度和空间复杂度。这有助于读者理解不同算法的优劣,并能在实际应用中做出最佳选择。 丰富的例题与习题: 每章都配有精心设计的例题,演示了数据结构和算法的应用场景;大量的课后习题则鼓励读者巩固所学知识,提升解决问题的能力。 适用人群: 计算机科学与技术、软件工程等相关专业的本科生和研究生: 作为核心课程的配套教材,能够帮助学生扎实掌握数据结构与算法的理论与实践。 希望系统学习数据结构与算法的软件开发者: 无论您是初学者还是有一定经验的开发者,本书都能为您提供全面深入的学习资源,提升您的编程技能和解决复杂问题的能力。 准备参加算法竞赛或技术面试的人员: 本书是准备各类算法竞赛和技术面试的宝贵参考资料。 通过学习本书,您将能够理解数据结构在计算机科学中的关键作用,掌握各种核心数据结构和算法的设计思想与实现技巧,从而在未来的学习和工作中构建更强大、更高效的软件系统。

用户评价

评分

我发现这本书的一个潜在的“缺点”,或者说是一种提醒吧,就是它更适合那些已经有一定C语言基础的学习者。如果你是完全的编程新手,可能在理解书中的C语言代码部分会有些困难。虽然书中没有明确要求,但我觉得在阅读前,对C语言的基础语法和一些核心概念有所了解,会大大提升学习效率。否则,你可能需要在同时阅读另一本C语言教材。

评分

老实说,这本书的语言风格比较学术化,有些地方的表述比较严谨,甚至有些“咬文嚼字”。这使得它在可读性方面,可能不如一些更偏向通俗易懂的科普读物。不过,对于一本严谨的计算机科学教材来说,这种风格也是可以理解的,毕竟它需要精确地传递知识,避免产生歧义。我个人认为,如果能加入一些更贴近实际应用场景的案例分析,可能会让学习过程更有趣一些。

评分

我对这本书的整体评价是,它是一本非常扎实、内容全面、体系严谨的计算机数据结构教材。它可能不是最容易入门的,但绝对是一本能够让你深入理解数据结构核心概念的优秀读物。对于那些想要打下坚实计算机基础,尤其是从事相关算法开发和研究的学生或开发者来说,这本书绝对是值得拥有的。

评分

我对这本书的另一印象深刻的地方是它对算法复杂度的分析。书中对各种数据结构和算法的时间复杂度和空间复杂度都有非常详细的分析和讨论,并且给出了清晰的图表和公式推导。这对于我理解算法的效率以及在实际应用中如何选择最优算法至关重要。虽然有时觉得分析过程有点枯燥,但这种严谨的科学态度正是这本教材所传达的核心价值。

评分

这本书的排版和章节组织结构是我非常欣赏的一点。每一章都从一个基本概念讲起,然后逐步深入,层层递进。每讲完一个数据结构或算法,都会有相应的C语言代码示例,并且这些代码都写得相当规范,注释也很详细,这一点对于我这种喜欢通过代码来理解抽象概念的人来说,简直是福音。很多时候,我会在阅读理论部分的时候,同步对照着代码去理解,这样一来,整个学习过程就变得更加生动和有条理。

评分

说实话,这本书的厚度让我当时有点小小的畏惧,但当我真正沉浸其中开始阅读时,我发现内容是那样充实,每一页都承载着作者的智慧和对知识的耐心讲解。虽然有时候需要停下来,反复推敲某个算法的证明过程,或者对着代码进行调试,但这正是我所期望的深度学习体验。这本书就像一位经验丰富的导师,循循善诱,引导我一步步走近数据结构的奥秘。

评分

这本书的作者在数据结构领域无疑是专家,他们的知识体系非常扎实,对概念的理解也非常深刻。从他们的笔触中,我能感受到作者深厚的学术功底和丰富的教学经验。他们能够用一种比较系统化的方式来呈现数据结构这个庞大的知识体系,并且将C语言的特性很好地融入到讲解和实现中,这使得这本书在同类教材中独具特色。

评分

我是一个比较注重实践的学习者,所以对书中提供的习题和课后练习相当看重。这本书的习题设计得很有梯度,从最简单的概念巩固,到需要综合运用多个知识点的复杂问题,应有尽有。我尝试做了一些,发现它们能很好地检验我对知识的掌握程度,同时也暴露了我一些理解上的盲区。有些习题的答案在书的后面有提供,这对于我自我检查非常有帮助。

评分

我承认,我一开始被这本书的“精选”和“著名”这两个词吸引了,总觉得能被选入“世界著名计算机教材精选”系列,质量肯定差不了。拿到手后,翻看目录,确实涵盖了数据结构中几乎所有核心内容,从最基础的数组、链表、栈、队列,到更复杂的树、图、排序和查找算法,内容非常全面。虽然我是带着期待去看的,但实际阅读过程中,还是有一些地方让我感到有些吃力。尤其是一些算法的证明和推导,虽然严谨,但对于初学者来说,可能需要反复琢磨才能完全理解。

评分

这本书我拿到手已经有一段时间了,我一直断断续续地在看,想给它一个全面且客观的评价,但又觉得好像还有很多细节值得深入挖掘。首先,这本书的出版质量相当不错,纸张厚实,印刷清晰,拿在手里有分量感,不是那种轻飘飘的感觉。封面设计也比较简洁大气,没有过多花哨的图案,直接点明了主题,让人一眼就能看出这是一本严肃的学术著作。我尤其喜欢它所采用的C语言作为实现语言,这对于很多计算机专业的学生来说,是最熟悉不过的编程语言了,上手也更加容易。

评分

经典书的第二版,涵盖了大部分基本的数据结构,比国内教材好。内容由浅入深,适合初学者及对数据结构有一定知识的人士,可以巩固相关知识~ 翻译的也还可以!

评分

数据结构的经典数据,学习数据结构的同学可以买,同时学过数据结构的也可以当参考书来看

评分

生成测试数据

评分

课程需要,内容很详细

评分

真是不容易 一口气买了5本C++书籍

评分

4.4.3

评分

结构体和联合体

评分

不错 现在几乎所有东西都京东购买了

评分

实惠便捷,信赖京东。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有