数据结构(数据结构电子书)

  • 时间:
  • 2911人关注

这是一篇关于数据结构的电子书资源热门专题内容,被474位程序员关注,内容涉及到数据结构、数据结构电子书、数据结构与算法电子书等,由濮茂实编辑整理。

  • 数据结构与算法分析:C语言描述

    数据结构与算法分析:C语言描述

    书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构

    大小:38.4 MBC语言

数据结构与算法分析:C语言描述 PDF

书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于本书选材新颖,方法实用,题例丰富,取舍得当。本书的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程,但并不是全部。一些程序可从互联网上获得。
本书是《Data Structures and Algorithm Analysis inC》一书第2版的简体中译本。原书曾被评为20世纪*的30部计算机著作之一,作者Mark AllenWeiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。
在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。

全书特点如下:

专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、*化算法以及回溯算法

介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树

安排一章专门讨论摊还分析,考查书中介绍的一些高级数据结构

新开辟一章讨论高级数据结构以及它们的实现,其中包括红黑树、自顶向下伸展树。treap树、k-d树、配对堆以及其他相关内容

合并了堆排序平均情况分析的一些新结果

本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序。本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。

目录

  • 出版者的话
  • 专家指导委员会
  • 译者序
  • 前言
  • 第1章 引论
  • 第2章 算法分析
  • 第3章 表、栈和队列
  • 第4章 树
  • 第5章 散列
  • 第6章 优先队列(堆)
  • 第7章 排序
  • 第8章 不相交集ADT
  • 第9章 图论算法
  • 第10章 算法设计技巧
  • 第11章 摊还分析
  • 第12章 高级数据结构及其实现
  • 索引
展开阅读
  • 数据结构与算法经典问题解析:Java语言描述

    数据结构与算法经典问题解析:Java语言描述

    数据结构与算法经典问题解析:Java语言描述(原书第2版) 是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法。本书强调问题及其分析,而非理论阐

    大小:107.1 MBJava语言

数据结构与算法经典问题解析:Java语言描述(原书第2版) 是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法。本书强调问题及其分析,而非理论阐述,共分为21章,讲述了基本概念、递归和回溯、链表、栈、队列、树、优先队列和堆、并查集DAT、图算法、排序、查找、选择算法(中位数)、符号表、散列、字符串算法、算法设计技术、贪婪算法、分治算法、动态规划算法、复杂度类型等内容。每章首先阐述必要的理论基础,然后给出问题集。全书中大约有700个算法问题及相应的解法,对于许多问题,本书提供了多个具有不同复杂度的解决方法。

本书可作为高等院校计算机及其相关专业的数据结构课程的教材或教学参考书,同时也可以作为从事计算机研究与开发的技术人员的参考书,特别是对正在准备面试、参加选拔性考试以及校园面试的读者尤为有用。

目录

  • 第1章绪论1
  • 第2章递归和回溯28
  • 第3章链表34
  • 第4章栈72
  • 第5章队列98
  • 第6章树110
  • 第7章优先队列和堆181
  • 第8章并查集ADT201
  • 第9章图算法211
  • 第10章排序256
  • 第11章查找279
  • 第12章选择算法(中位数)304
  • 第13章符号表314
  • 第14章散列317
  • 第15章字符串算法335
  • 第16章算法设计技术361
  • 第17章贪婪算法364
  • 第18章分治算法375
  • 第19章动态规划算法390
  • 第20章复杂度类型425
  • 第21章杂谈433
展开阅读
  • 数据结构与算法:Python语言实现

    数据结构与算法:Python语言实现

    这书选用Python語言详细介绍数据结构和优化算法,包含其设计构思、剖析和执行。这书源码简约、确立,面向对象编程的见解围绕自始至终,根据承继*底限地提升编码器重,一起突显不一样抽

    大小:32.9 MB数据结构算法

数据结构与算法:Python语言实现 PDF

这书选用Python語言详细介绍数据结构和优化算法,包含其设计构思、剖析和执行。这书源码简约、确立,面向对象编程的见解围绕自始至终,根据承继*底限地提升编码器重,一起突显不一样抽象数据类型和优化算法中间的不同点。

麦克尔·T. 古德里奇(Michael T. Goodrich) 加州大学凯里欧文校区电子信息科学系专家教授,以前是约翰·霍普金斯大学专家教授。他是AAAS、ACM和IEEE会士,曾喜获IEEE电子计算机研究会技术性成就奖和ACM非凡服务奖等。

罗伯托·塔马西亚(Roberto Tamassia) 布朗大学电子信息科学系专家教授及院主任,担任几何图形数据中心负责人。他是AAAS、ACM和IEEE会士,曾喜获IEEE电子计算机研究会技术性成就奖。

麦克尔·H.戈德瓦瑟(Michael H. Goldwasser) 圣路易斯大学数学系和电子信息科学系专家教授,担任电子信息科学新项目负责人,以前曾在纽约罗耀拉高校执教。

目录

  • 译者序
  • 前言
  • 致谢
  • 作者简介
  • 第1章 Python入门 1
  • 1.1 Python概述 1
  • 1.1.1 Python解释器 1
  • 1.1.2 Python程序预览 1
  • 1.2 Python对象 2
  • 1.2.1 标识符、对象和赋值语句 2
  • 1.2.2 创建和使用对象 4
  • 1.2.3 Python的内置类 4
  • 1.3 表达式、运算符和优先级 8
  • 1.4 控制流程 12
  • 1.4.1 条件语句 12
  • 1.4.2 循环语句 14
  • 1.5 函数 16
  • 1.5.1 信息传递 17
  • 1.5.2 Python的内置函数 19
  • 1.6 简单的输入和输出 20
  • 1.6.1 控制台输入和输出 21
  • 1.6.2 文件 21
  • 1.7 异常处理 22
  • 1.7.1 抛出异常 23
  • 1.7.2 捕捉异常 24
  • 1.8 迭代器和生成器 26
  • 1.9 Python的其他便利特点 28
  • 1.9.1 条件表达式 29
  • 1.9.2 解析语法 29
  • 1.9.3 序列类型的打包和解包 30
  • 1.10 作用域和命名空间 31
  • 1.11 模块和import语句 32
  • 1.12 练习 34
  • 扩展阅读 36
  • 第2章 面向对象编程 37
  • 2.1 目标、原则和模式 37
  • 2.1.1 面向对象的设计目标 37
  • 2.1.2 面向对象的设计原则 38
  • 2.1.3 设计模式 39
  • 2.2 软件开发 40
  • 2.2.1 设计 40
  • 2.2.2 伪代码 41
  • 2.2.3 编码风格和文档 42
  • 2.2.4 测试和调试 43
  • 2.3 类定义 44
  • 2.3.1 例子:CreditCard类 45
  • 2.3.2 运算符重载和Python的特殊方法 48
  • 2.3.3 例子:多维向量类 50
  • 2.3.4 迭代器 51
  • 2.3.5 例子:Range类 52
  • 2.4 继承 53
  • 2.4.1 扩展CreditCard类 54
  • 2.4.2 数列的层次图 57
  • 2.4.3 抽象基类 60
  • 2.5 命名空间和面向对象 62
  • 2.5.1 实例和类命名空间 62
  • 2.5.2 名称解析和动态调度 65
  • 2.6 深拷贝和浅拷贝 65
  • 2.7 练习 67
  • 扩展阅读 70
  • 第3章 算法分析 71
  • 3.1 实验研究 71
  • 3.2 本书使用的7种函数 74
  • 3.2.1 常数函数 74
  • 3.2.2 对数函数 74
  • 3.2.3 线性函数 75
  • 3.2.4 n-log-n函数 75
  • 3.2.5 二次函数 76
  • 3.2.6 三次函数和其他多项式 77
  • 3.2.7 指数函数 77
  • 3.2.8 比较增长率 79
  • 3.3 渐近分析 79
  • 3.3.1 大O符号 80
  • 3.3.2 比较分析 82
  • 3.3.3 算法分析示例 84
  • 3.4 简单的证明技术 89
  • 3.4.1 示例 89
  • 3.4.2 反证法 89
  • 3.4.3 归纳和循环不变量 90
  • 3.5 练习 91
  • 扩展阅读 95
  • 第4章 递归 96
  • 4.1 说明性的例子 96
  • 4.1.1 阶乘函数 96
  • 4.1.2 绘制英式标尺 97
  • 4.1.3 二分查找 99
  • 4.1.4 文件系统 101
  • 4.2 分析递归算法 104
  • 4.3 递归算法的不足 106
  • 4.4 递归的其他例子 109
  • 4.4.1 线性递归 109
  • 4.4.2 二路递归 112
  • 4.4.3 多重递归 113
  • 4.5 设计递归算法 114
  • 4.6 消除尾递归 115
  • 4.7 练习 116
  • 扩展阅读 118
  • 第5章 基于数组的序列 119
  • 5.1 Python序列类型 119
  • 5.2 低层次数组 119
  • 5.2.1 引用数组 121
  • 5.2.2 Python中的紧凑数组 122
  • 5.3 动态数组和摊销 124
  • 5.3.1 实现动态数组 126
  • 5.3.2 动态数组的摊销分析 127
  • 5.3.3 Python列表类 130
  • 5.4 Python序列类型的效率 130
  • 5.4.1 Python的列表和元组类 130
  • 5.4.2 Python的字符串类 134
  • 5.5 使用基于数组的序列 136
  • 5.5.1 为游戏存储高分 136
  • 5.5.2 为序列排序 138
  • 5.5.3 简单密码技术 140
  • 5.6 多维数据集 142
  • 5.7 练习 145
  • 扩展阅读 147
  • 第6章 栈、队列和双端队列 148
  • 6.1 栈 148
  • 6.1.1 栈的抽象数据类型 148
  • 6.1.2 简单的基于数组的栈实现 149
  • 6.1.3 使用栈实现数据的逆置 152
  • 6.1.4 括号和HTML标记匹配 152
  • 6.2 队列 155
  • 6.2.1 队列的抽象数据类型 155
  • 6.2.2 基于数组的队列实现 156
  • 6.3 双端队列 160
  • 6.3.1 双端队列的抽象数据类型 160
  • 6.3.2 使用环形数组实现双端队列 161
  • 6.3.3 Python collections模块中的双端队列 162
  • 6.4 练习 163
  • 扩展阅读 165
  • 第7章 链表 166
  • 7.1 单向链表 166
  • 7.1.1 用单向链表实现栈 169
  • 7.1.2 用单向链表实现队列 171
  • 7.2 循环链表 173
  • 7.2.1 轮转调度 173
  • 7.2.2 用循环链表实现队列 174
  • 7.3 双向链表 175
  • 7.3.1 双向链表的基本实现 177
  • 7.3.2 用双向链表实现双端队列 179
  • 7.4 位置列表的抽象数据类型 180
  • 7.4.1 含位置信息的列表抽象数据类型 182
  • 7.4.2 双向链表实现 183
  • 7.5 位置列表的排序 186
  • 7.6 案例研究:维护访问频率 186
  • 7.6.1 使用有序表 187
  • 7.6.2 启发式动态调整列表 188
  • 7.7 基于链接的序列与基于数组的序列 190
  • 7.8 练习 192
  • 扩展阅读 195
  • 第8章 树 196
  • 8.1 树的基本概念 196
  • 8.1.1 树的定义和属性 196
  • 8.1.2 树的抽象数据类型 199
  • 8.1.3 计算深度和高度 201
  • 8.2 二叉树 203
  • 8.2.1 二叉树的抽象数据类型 204
  • 8.2.2 二叉树的属性 206
  • 8.3 树的实现 207
  • 8.3.1 二叉树的链式存储结构 207
  • 8.3.2 基于数组表示的二叉树 212
  • 8.3.3 一般树的链式存储结构 214
  • 8.4 树的遍历算法 214
  • 8.4.1 树的先序和后序遍历 214
  • 8.4.2 树的广度优先遍历 216
  • 8.4.3 二叉树的中
展开阅读
  • 数据结构与算法

    数据结构与算法

    《 数据结构与算法 》:系统软件详细介绍各种各样基础数据结构的定义、基本原理和操作步骤,并从算法的视角探讨排列和查找算法。 以难题求出主导线,从难题抽象性、数据抽象和算法抽

    大小:25 MB数据结构

数据结构与算法 PDF

数据结构与算法》:系统软件详细介绍各种各样基础数据结构的定义、基本原理和操作步骤,并从算法的视角探讨排列和查找算法。

以难题求出主导线,从难题抽象性、数据抽象和算法抽象性的视角机构数据结构与算法的布置。

重视将基础理论內容融合运用背景图,提升上机操作动手能力实践活动能力训练,主要塑造大学生的发散性思维能力与难题模型工作能力,使其学好怎样依据具体难题对数据结构和算法开展选择,在时间复杂度和室内空间复杂性中间开展均衡。
出示PPT电子教案、在线课程、系统化教学场地等教育资源,与《数据结构与算法》配套设施的实习课教材内容《数据结构与算法试验实例教程》将于2009年出版发行。

根据国家教育部高等院校电子信息科学与技术性课堂教学具体指导联合会定编的高等院校电子信息科学与专业标准和IEEE/ACM制定的CC2001-CC2005相关实例教程撰写。

目录

  • 第1章 概论
  • 1.1 问题求解
  • 1.1.1 问题描述:股市的传言
  • 1.1.2 问题分析和抽象
  • 1.1.3 数据结构和算法设计
  • 1.2 数据结构
  • 1.2.1 数据的逻辑结构
  • 1.2.2 数据的存储结构
  • 1.2.3 抽象数据类型
  • 1.3 算法
  • 1.3.1 算法的概念
  • 1.3.2 算法设计
  • 1.4 算法分析
  • 1.4.1 渐进分析方法
  • 1.4.2 佳、差和平均情况
  • 1.4.3 时间和空间的折衷
  • 1.4.4 求解问题时数据结构的选择和评价
  • 本章小结
  • 习题
  • 上机题
  • 第2章 线性表
  • 2.1 线性表的概念
  • 2.1.1 线性表的抽象数据类型
  • 2.1.2 线性表的存储结构
  • 2.1.3 线性表运算分类
  • 2.2 顺序表
  • 2.2.1 顺序表的类定义
  • 2.2.2 顺序表的运算实现
  • 2.3 链表
  • 2.3.1 单链表
  • 2.3.2 双链表
  • 2.3.3 循环链表
  • 2.4 线性表实现方法的比较
  • 第3章 栈与队列
  • 3.1 栈
  • 3.1.1 栈的抽象数据类型
  • 3.1.2 顺序栈
  • 3.1.3 链式栈
  • 3.1.4 表达式求值
  • 3.1.5 栈与递归
  • 3.2 队列
  • 3.2.1 队列的抽象数据类型
  • 3.2.2 顺序队列
  • 3.2.3 链式队列
  • 3.3 栈与队列的深入讨论
  • 3.3.1 顺序栈与链式栈的比较
  • 3.3.2 顺序队列与链式队列的比较
  • 3.3.3 限制存取点的表
  • 第4章 字符串
  • 4.1 字符串的基本概念
  • 4.1.1 字符编码
  • 4.1.2 字符的编码顺序
  • 4.1.3 字符串抽象数据类型
  • 4.2 字符串的存储结构和实现
  • 4.2.1 字符串的顺序存储
  • 4.2.2 字符串类Class String的存储结构
  • 4.2.3 字符串运算的实现
  • 4.3 字符串的模式匹配
  • 4.3.1 朴素的模式匹配算法
  • 4.3.2 字符串的特征向量
  • 4.3.3 KMP模式匹配算法
  • 第5章 二叉树
  • 5.1 二叉树的概念
  • 5.1.1 二叉树的定义和基本术语
  • 5.1.2 满二叉树、完全二叉树、扩充二叉树
  • 5.1.3 二叉树的主要性质
  • 5.2 二叉树的周游
  • 5.2.1 二叉树的抽象数据类型
  • 5.2.2 深度优先周游二叉树
  • 5.2.3 广度优先周游二叉树
  • 5.3 二叉树的存储结构
  • 5.3.1 二叉树的链式存储结构
  • 5.3.2 完全二叉树的顺序存储结构
  • 5.4 二叉搜索树
  • 5.5 堆与优先队列
  • 5.5.1 堆的定义及其实现
  • 5.5.2 优先队列
  • 5.6 Huffman树及其应用
  • 5.6.1 Huffman树
  • 5.6.2 Huffman编码
  • 第6章 树
  • 6.1 树的定义和基本术语
  • 6.1.1 树和森林
  • 6.1.2 森林与二叉树的等价转换
  • 6.1.3 树的抽象数据类型
  • 6.1.4 树的周游
  • 6.2 树的链式存储结构
  • 6.2.1 “子结点表”表示方法
  • 6.2.2 静态“左子/右兄”表示法
  • 6.2.3 动态表示法
  • 6.2.4 动态“左子/右兄”二叉链表表示法
  • 6.2.5 父指针表示法和在并查集中的应用
  • 6.3 树的顺序存储结构
  • 6.3.1 带右链的先根次序表示
  • 6.3.2 带双标记的先根次序表示
  • 6.3.3 带度数的后根次序表示
  • 6.3.4 带双标记的层次次序表示
  • 6.4 K叉树
  • 第7章 图
  • 7.1 图的定义和基本术语
  • 7.2 图的抽象数据类型
  • 7.3 图的存储结构
  • ……
  • 第8章 内排序
  • 第9章 文件管理和外排序
  • 第10章 检索
  • 第11章 索引技术
  • 第12章 高级数据结构
  • 参考文献
展开阅读
  • 数据结构、算法与应用:C++语言描述

    数据结构、算法与应用:C++语言描述

    数据结构、算法与应用:C++语言描述(原书第2版) 共分三个部分。第一部分从第1章到第4章,旨在复习C++程序设计的概念以及程序性能的分析和测量方法。第二部分从第5章到第16章,研究数据结构

    大小:109.2 MB数据结构

数据结构、算法与应用:C++语言描述(原书第2版)共分三个部分。第一部分从第1章到第4章,旨在复习C++程序设计的概念以及程序性能的分析和测量方法。第二部分从第5章到第16章,研究数据结构,包括线性表、数组和矩阵、栈、队列、字典、二叉树、优先级队列、竞赛树、搜索树和图等。第三部分从第17章到第21章,研究常用算法,包括贪婪算法、分而治之算法、动态规划、回溯算法和分枝定界算法。本书有800多道练习题和50多个应用实例。内容广博,组织合理,论述清晰,循序渐进,而且对程序性能的分析和测量系统入微。本书不仅是数据结构和算法的经典教材,而且是计算机科学与工程领域的理想参考书。

目录

  • 第一部分 预备知识
  • 第1章 C++回顾
  • 第2章 程序性能分析
  • 第3章 渐近记法
  • 第4章 性能测量
  • 第二部分 数据结构
  • 第5章 线性表--数组描述
  • 第6章 线性表--链式描述
  • 第7章 数组和矩阵
  • 第8章 栈
  • 第9章 队列
  • 第10章 跳表和散列
  • 第11章 二叉树和其他树
  • 第12章 优先级队列
  • 第13章 竞赛树
  • 第14章 搜索树
  • 第15章 平衡搜索树
  • 第16章 图
  • 第三部分 算法设计方法
  • 第17章 贪婪算法
  • 第18章 分而治之
  • 第19章 动态规划
  • 第20章 回溯法
  • 第21章 分支定界
展开阅读
  • 数据结构与算法分析:C++语言描述

    数据结构与算法分析:C++语言描述

    数据结构与算法分析:C++语言描述(第四版) 是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书中内容包括表、栈、队列、树、散列表、优先队列、排

    大小:115.3 MB数据结构

数据结构与算法分析:C++语言描述(第四版)是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书中内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。本书把算法分析与C++程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。

适读人群 :本书概念清楚,逻辑性强,内容新颖,适合作为大专院校计算机软件与计算机应用等相关专业的教材或参考书,也适合计算机工程技术人员参考。

目录

  • 第1章 程序设计:综述 1
  • 第2章 算法分析 42
  • 第3章 表、栈和队列 64
  • 第4章 树 100
  • 第5章 散列 155
  • 第6章 优先队列(堆) 196
  • 第7章 排序 232
  • 第8章 不相交集类 281
  • 第9章 图论算法 303
  • 第10章 算法设计技巧 353
  • 第11章 摊还分析 418
  • 第12章 高级数据结构及其实现 439
展开阅读
  • 数据结构 Python语言描述

    数据结构 Python语言描述

    在电子信息科学中,数据结构是这门升阶性课程内容,定义抽象性,难度系数很大。Python语言的英语的语法简易,易用性强。用Python来解读数据结构等主题风格,比c语言等保持起來更加非常容

    大小:101 MBPython

数据结构 Python语言描述 PDF

在电子信息科学中,数据结构是这门升阶性课程内容,定义抽象性,难度系数很大。Python语言的英语的语法简易,易用性强。用Python来解读数据结构等主题风格,比c语言等保持起來更加非常容易,更加清楚。 《数据结构 Python语言描述》第1章简易详细介绍了Python语言的基本知识和特点。第2章到第4章对抽象数据类型、数据结构、复杂性剖析、数组和线形链表构造开展了详解,第5章和第6章重中之重详细介绍了面向对象设计的有关专业知识、第5章包含插口和保持中间的重中之重差别、多态及其信息内容掩藏等內容,第6章关键解读承继的有关专业知识,第7章到第9章以栈、序列和目录为意味着,详细介绍了线形结合的有关专业知识。第10章详细介绍了各种各样树结构,第11章解读了集和词典的有关內容,第12章详细介绍了图和图解决优化算法。每章*后,还得出了复习题和实例学习培训,协助用户推进和思索。 《数据结构 Python语言描述》不但合适高等学校计算机专科老师学生阅读文章,也合适对Python喜欢的用户和程序猿阅读文章。

核心主题:详细介绍,数据结构,內容,语言,专业知识,重中之重,解读,阅读文章,线形,起來

目录

  • 第1章 Python编程基础 1
  • 1.1 基本程序要素 1
  • 1.1.1 程序和模块 1
  • 1.1.2 Python程序示例:猜数字 1
  • 1.1.3 编辑、编译并运行
  • Python程序 2
  • 1.1.4 程序注释 3
  • 1.1.5 词法元素 3
  • 1.1.6 拼写和命名惯例 3
  • 1.1.7 语法元素 4
  • 1.1.8 字面值 4
  • 1.1.9 字符串字面值 4
  • 1.1.10 运算符和表达式 5
  • 1.1.11 函数调用 5
  • 1.1.12 print函数 5
  • 1.1.13 input函数 5
  • 1.1.14 类型转换函数和
  • 混合模式运算 6
  • 1.1.15 可选的和关键字
  • 函数参数 6
  • 1.1.16 变量和赋值语句 6
  • 1.1.17 Python数据类型 7
  • 1.1.18 import语句 7
  • 1.1.19 获取关于程序组件
  • 的帮助 7
  • 1.2 控制语句 8
  • 1.2.1 条件式语句 8
  • 1.2.2 使用if __name__ ==
  • "__main__" 9
  • 1.2.3 循环语句 10
  • 1.3 字符串及其运算 10
  • 1.3.1 运算符 10
  • 1.3.2 格式化字符串以便输出 11
  • 1.3.3 对象和方法调用 13
  • 1.4 内建Python集合及其操作 13
  • 1.4.1 列表 14
  • 1.4.2 元组 14
  • 1.4.3 遍历序列 14
  • 1.4.4 字典 15
  • 1.4.5 搜索一个值 15
  • 1.4.6 对集合应用模式匹配 15
  • 1.5 编写新的函数 16
  • 1.5.1 函数定义 16
  • 1.5.2 递归函数 17
  • 1.5.3 嵌套的函数定义 19
  • 1.5.4 高阶函数 19
  • 1.5.5 使用lambda表达式
  • 创建匿名函数 20
  • 1.6 捕获异常 20
  • 1.7 文件及其操作 21
  • 1.7.1 文本文件的输出 22
  • 1.7.2 将数字写入到一个
  • 文本文件 22
  • 1.7.3 从文本文件读取文本 23
  • 1.7.4 从文件读取数字 24
  • 1.7.5 使用pickle读写对象 24
  • 1.8 创建新的类 25
  • 1.9 编程项目 28
  • 第2章 集合概览 30
  • 2.1 集合类型 30
  • 2.1.1 线性集合 30
  • 2.1.2 层级集合 31
  • 2.1.3 图集合 31
  • 2.1.4 无序集合 31
  • 2.1.5 有序集合 31
  • 2.1.6 集合类型的分类 32
  • 2.2 集合上的操作 32
  • 2.3 集合的实现 34
  • 2.4 小结 35
  • 2.5 复习题 35
  • 2.6 编程项目 36
  • 第3章 搜索、排序和复杂度分析 37
  • 3.1 评估算法的性能 37
  • 3.1.1 度量算法的运行时间 37
  • 3.1.2 统计指令 39
  • 3.1.3 度量算法所使用的内存 41
  • 3.1.4 练习3.1 41
  • 3.2 复杂度分析 41
  • 3.2.1 复杂度的阶 41
  • 3.2.2 大O表示法 43
  • 3.2.3 常量比例的作用 43
  • 3.2.4 练习3.2 43
  • 3.3 搜索算法 44
  • 3.3.1 搜索最小值 44
  • 3.3.2 顺序搜索一个列表 44
  • 3.3.3 最好情况、最坏情况和
  • 平均情况的性能 45
  • 3.3.4 有序列表的二叉搜索 45
  • 3.3.5 比较数据项 47
  • 3.3.6 练习3.3 48
  • 3.4 基本排序算法 48
  • 3.4.1 选择排序 48
  • 3.4.2 冒泡排序 49
  • 3.4.3 插入排序 50
  • 3.4.4 再谈最好情况、最坏情
  • 况和平均情况的性能 52
  • 3.4.5 练习3.4 52
  • 3.5 更快的排序 53
  • 3.5.1 快速排序简介 53
  • 3.5.2 合并排序 56
  • 3.5.3 练习3.5 59
  • 3.6 指数算法:递归式的
  • Fibonacci 59
  • 3.7 案例学习:算法探查器 61
  • 3.7.1 需求 61
  • 3.7.2 分析 61
  • 3.7.3 设计 62
  • 3.7.4 实现(编写代码) 63
  • 3.8 小结 65
  • 3.9 复习题 66
  • 3.10 编程项目 67
  • 第4章 数组和链表结构 69
  • 4.1 数组数据结构 69
  • 4.1.1 随机访问和连续内存 71
  • 4.1.2 静态内存和动态内存 72
  • 4.1.3 物理大小和逻辑大小 72
  • 4.1.4 练习4.1 73
  • 4.2 数组的操作 73
  • 4.2.1 增加数组的大小 73
  • 4.2.2 减小数组的大小 74
  • 4.2.3 在数组中插入一项 74
  • 4.2.4 从数组中删除一项 75
  • 4.2.5 复杂度权衡:时间、
  • 空间和数组 76
  • 4.2.6 练习4.2 76
  • 4.3 二维数组 77
  • 4.3.1 处理网格 77
  • 4.3.2 创建并初始化网格 77
  • 4.3.3 定义Grid类 78
  • 4.3.4 杂乱的网格和多维数组 79
  • 4.3.5 练习4.3 79
  • 4.4 链表结构 80
  • 4.4.1 单链表结构和双链表
  • 结构 80
  • 4.4.2 非连续性内存和节点 81
  • 4.4.3 定义一个单链表节点类 82
  • 4.4.4 使用单链表节点类 82
  • 4.4.5 练习4.4 84
  • 4.5 单链表结构上的操作 84
  • 4.5.1 遍历 84
  • 4.5.2 搜索 85
  • 4.5.3 替换 86
  • 4.5.4 在开始处插入 86
  • 4.5.5 在末尾插入 87
  • 4.5.6 从开始处删除 87
  • 4.5.7 从末尾删除 88
  • 4.5.8 在任何位置插入 89
  • 4.5.9 从任意位置删除 90
  • 4.5.10 复杂度权衡:时间、
  • 空间和单链表结构 91
  • 4.5.11 练习4.5 92
  • 4.6 链表的变体 92
  • 4.6.1 带有一个哑头节点
  • 的循环链表结构 92
  • 4.6.2 双链表结构 93
  • 4.6.3 练习4.6 95
  • 4.7 小结 95
  • 4.8 复习题 96
  • 4.9 编程项目 96
  • 第5章 接口、实现和多态 98
  • 5.1 开发接口 98
  • 5.1.1 定义包接口 98
  • 5.1.2 指定参数和返回值 99
  • 5.1.3 构造方法和实现类 101
  • 5.1.4 先验条件、后验条件、
  • 异常和文档 101
  • 5.1.5 用Python编写接口 102
  • 5.1.6 练习5.1 103
  • 5.2 开发一个基于数组的实现 103
  • 5.2.1 选择并初始化数据
  • 结构 103
  • 5.2.2 先完成容易的方法 104
  • 5.2.3 完成迭代器 105
  • 5.2.4 完成使用迭代器
  • 的方法 106
  • 5.2.5 in运算符和__contains__
  • 方法 106
  • 5.2.6 完成remove方法 107
  • 5.2.7 练习5.2 107
  • 5.3 开发一个基于链表的实现 107
  • 5.3.1 初始化数据结构 108
  • 5.3.2 完成迭代器 109
  • 5.3.3 完成clear和add方法 109
  • 5.3.4 完成remove方法 109
  • 5.3.5 练习5.3 110
  • 5.4 两个包实现的运行时性能 110
  • 5.5 测试两个包实现 111
  • 5.6 用UML图表示包资源 112
  • 5.7 小结 113
  • 5.8 复习题 113
  • 5.9 编程项目 114
  • 第6章 继承和抽象类 115
  • 6.1 使用继承定制一个已有的类 115
  • 6.1.1 已有类的子类化 115
  • 6.1.2 再谈__init__方法 116
  • 6.1.3 添加新的contains方法 117
  • 6.1.4 修改已有的add方法 117
  • 6.1.5 ArraySortedBag的运行
  • 时间性能 118
  • 6.1.6 Python中的类层级 118
  • 6.1.7 练习6.1 119
  • 6.2 使用抽象类去除代码冗余性 119
  • 6.2.1 设计一个
  • AbstractBag类 119
  • 6.2.2 重新编写AbstractBag
  • 中的__init__方法 120
  • 6.2.3 修改AbstractBag
  • 的子类 120
  • 6.2.4 将AbstractBag中的
  • __add__方法泛化 121
  • 6.3 所有集合的一个抽象类 122
  • 6.3.1 将AbstractCollection
  • 整合到集合层级中 122
  • 6.3.2 在__eq__方法中使用
  • 两个迭代器 123
  • 6.3.3 练习6.2 124
  • 6.4 小结 124
  • 6.5 复习题 124
  • 6.6 编程项目 125
  • 第7章 栈 127
  • 7.1 栈概览 127
  • 7.2 使用栈 128
  • 7.2.1 栈接口 128
  • 7.2.2 初始化一个栈 129
  • 7.2.3 示例应用程序:
  • 匹配括号 129
  • 7.2.4 练习7.1 131
  • 7.3 栈的3种应用 131
  • 7.3.1 计算算术表达式 131
  • 7.3.2 计算后缀表达式 132
  • 7.3.3 练习7.2 133
  • 7.3.4 将中缀表达式转换为
  • 后缀表达式 133
  • 7.3.5 练习7.3 135
  • 7.3.6 回溯算法 135
  • 7.3.7 内存管理 137
  • 7.4 栈的实现 138
  • 7.4.1 测试驱动程序 138
  • 7.4.2 将栈添加到集合层级中 139
  • 7.4.3 数组实现 140
  • 7.4.4 链表实现 141
  • 7.4.5 AbstractStack类的
  • 作用 144
  • 7.4.6 两种实现的时间和
  • 空间分析 144
  • 7.4.7 练习7.4 145
  • 7.5 案例学习:计算后缀表达式 145
  • 7.5.1 要求 145
  • 7.5.2 分析 145
  • 7.5.3 设计 148
  • 7.5.4 实现 150
  • 7.6 小结 153
  • 7.7 复习题 153
  • 7.8 编程项目 154
  • 第8章 队列 156
  • 8.1 队列概览 156
  • 8.2 队列接口及其应用 157
  • 练习8.1 158
  • 8.3 队列的两个应用 159
  • 8.3.1 模拟 159
  • 8.3.2 轮询CPU调度 161
  • 8.3.3 练习8.2 161
  • 8.4 队列的实现 161
  • 8.4.1 队列的链表实现 161
  • 8.4.2 数组实现 163
  • 8.4.3 两种实现的时间和
  • 空间复杂度分析 164
  • 8.4.4 练习8.3 165
  • 8.5 案例学习:模拟超市排队
  • 结账 165
  • 8.5.1 要求 165
  • 8.5.2 分析 165
  • 8.5.3 用户界面 166
  • 8.5.4 类及其作用 166
  • 8.6 优先队列 171
  • 练习8.4 175
  • 8.7 案例学习:急症室调度 175
  • 8.7.1 需求 175
  • 8.7.2 分析 175
  • 8.7.3 类 176
  • 8.7.4 设计和实现 177
  • 8.8 小结 179
  • 8.9 复习题 179
  • 8.10 编程项目 180
  • 第9章 列表 182
  • 9.1 概览 182
  • 9.2 使用列表 183
  • 9.2.1 基于索引的操作 183
  • 9.2.2 基于内容的操作 183
  • 9.2.3 基于位置的操作 184
  • 9.2.4 列表的接口 187
  • 9.2.5 练习9.1 188
  • 9.3 列表的应用 188
  • 9.3.1 堆存储管理 188
  • 9.3.2 组织磁盘上的文件 189
  • 9.3.3 其他集合的实现 190
  • 9.4 列表实现 191
  • 9.4.1 AbstractList类的角色 191
  • 9.4.2 基于数组的实现 192
  • 9.4.3 链表实现 194
  • 9.4.4 两种实现的时间和
  • 空间分析 196
  • 9.4.5 练习9.2 197
  • 9.5 实现列表迭代器 197
  • 9.5.1 列表迭代器的角色
  • 和作用 197
  • 9.5.2 设置和实例化一个
  • 列表迭代器类 198
  • 9.5.3 列表迭代器中的导
  • 航方法 199
  • 9.5.4 列表迭代器中的修
  • 改器方法 200
  • 9.5.5 链表列表的列表迭
  • 代器的设计 201
  • 9.5.6 列表迭代器实现的
  • 时间和空间分析 201
  • 9.6 案例学习:开发一个有序
  • 的列表 201
  • 9.6.1 要求 201
  • 9.6.2 分析 202
  • 9.6.3 设计 202
  • 9.6.4 实现(代码) 204
  • 9.7 小结 205
  • 9.8 复习题 205
  • 9.9 编程项目 206
  • 第10章 树 208
  • 10.1 树的概览 208
  • 10.1.1 树的术语 208
  • 10.1.2 普通的树和二叉树 209
  • 10.1.3 树的递归定义 210
  • 10.1.4 练习10.1 210
  • 10.2 为什么要使用树 210
  • 10.3 二叉树的形状 211
  • 练习10.2 213
  • 10.4 二叉树的3种常见应用 213
  • 10.4.1 堆 213
  • 10.4.2 二叉搜索树 214
  • 10.4.3 表达式树 215
  • 10.4.4 练习10.3 216
  • 10.5 二叉树的遍历 216
  • 10.5.1 前序遍历 216
  • 10.5.2 中序遍历 217
  • 10.5.3 后序遍历 217
  • 10.5.4 层序遍历 217
  • 10.6 开发二叉搜索树 217
  • 10.6.1 二叉搜索树接口 218
  • 10.6.2 链表实现的数据结构 219
  • 10.6.3 二叉搜索树的复杂度
  • 分析 223
  • 10.6.4 练习10.4 224
  • 10.7 递归的后代解析和编程语言 224
  • 10.7.1 语法简介 224
  • 10.7.2 在语言中识别、解析
  • 和解释句子 226
  • 10.7.3 词法分析和扫描器 226
  • 10.7.4 解析策略 227
  • 10.8 案例学习:解析和表达式树 227
  • 10.8.1 要求 227
  • 10.8.2 分析 228
  • 10.8.3 节点类的设计和实现 228
  • 10.8.4 解析器类的设计和
  • 实现 230
  • 10.9 二叉树的数组实现 231
  • 练习10.5 232
  • 10.10 实现堆 232
  • 练习10.6 234
  • 10.11 小结 234
  • 10.12 复习题 235
  • 10.13 编程项目 236
  • 第11章 集和字典 238
  • 11.1 使用集 238
  • 11.2 Python的set类 239
  • 11.2.1 集的一个示例会话 239
  • 11.2.2 集的应用 240
  • 11.2.3 集和包的关系 240
  • 11.2.4 集和字典的关系 240
  • 11.2.5 集的实现 240
  • 11.2.6 练习11.1 241
  • 11.3 集的基于数组和链表的实现 241
  • 11.3.1 AbstractSet类 241
  • 11.3.2 ArraySet类 242
  • 11.4 使用字典 243
  • 11.5 基于数组和基于链表的
  • 字典实现 244
  • 11.5.1 Item类 244
  • 11.5.2 AbstractDict类 245
  • 11.5.3 ArrayDict类 246
  • 11.5.4 集和字典的基于数组
  • 和列表的实现的复杂
  • 度分析 247
  • 11.5.5 练习11.2 248
  • 11.6 哈希策略 248
  • 11.6.1 冲突和密度的关系 249
  • 11.6.2 非数字键的哈希 250
  • 11.6.3 线性探测 251
  • 11.6.4 二次探测 252
  • 11.6.5 链化 253
  • 11.6.6 复杂度分析 253
  • 11.6.7 练习11.3 254
  • 11.7 案例学习:探查哈希策略 254
  • 11.7.1 需求 255
  • 11.7.2 分析 255
  • 11.7.3 设计 256
  • 11.8 集的哈希实现 258
  • 11.9 字典的哈希实现 261
  • 练习11.4 263
  • 11.10 有序的集和字典 263
  • 11.11 小结 264
  • 11.12 复习题 264
  • 11.13 编程项目 265
  • 第12章 图 267
  • 12.1 图的术语 267
  • 练习12.1 269
  • 12.2 为什么使用图 270
  • 12.3 图的表示 270
  • 12.3.1 相邻矩阵 270
  • 12.3.2 邻接表 271
  • 12.3.3 两种表示的分析 272
  • 12.3.4 运行时间的进一步
  • 考虑 272
  • 12.3.5 练习12.2 273
  • 12.4 图的遍历 273
  • 12.4.1 泛型遍历算法 273
  • 12.4.2 广度优先遍历和深度
  • 优先遍历 274
  • 12.4.3 图区域 275
  • 12.4.4 练习12.3 276
  • 12.5 图中的树 276
  • 12.5.1 生成树和森林 276
  • 12.5.2 最小生成树 277
  • 12.5.3 最小生成树的算法 277
  • 12.6 拓扑排序 279
  • 12.7 最短路径问题 279
  • 12.7.1 Dijkstra算法 280
  • 12.7.2 初始化步骤 280
  • 12.7.3 计算步骤 281
  • 12.7.4 无限的表示和用法 282
  • 12.7.5 分析 282
  • 12.7.6 练习12.4 282
  • 12.7.7 Floyd算法 283
  • 12.7.8 分析 283
  • 12.8 开发一个图集合 284
  • 12.8.1 使用图集合的示例 284
  • 12.8.2 LinkedDirected-
  • Graph类 285
  • 12.8.3 LinkedVertex类 288
  • 12.8.4 LinkedEdge类 289
  • 12.9 案例学习:测试图算法 290
  • 12.9.1 需求 290
  • 12.9.2 分析 290
  • 12.9.3 GraphDemoView类和
  • GraphDemoModel类 291
  • 12.9.4 实现(代码) 292
  • 12.10 小结 295
  • 12.11 复习题 296
  • 12.12 编程项目 297
  • 附录 供Python程序员使用的
  • 集合框架 299
展开阅读
  • 数据结构与算法Java语言描述

    数据结构与算法Java语言描述

    编辑推荐 如果你是一名正在学习计算机科学的学生,或者你是一个正在准备技术面试的软件开发者,本书将以一种更清晰、更具体,以及更吸引人的方式帮助你学习并回顾软件工程中*重要的部分-----数据结构和算法。 内容简介 本书作者强调实践知识和技能胜过理论,在书中为你展示了怎样使用数据结构实现有效的算法,并分析和测试了算法的性能。在本书中你将探索Java集合框架(JCF)中重要的类,它们是如何实现的,以及如何执行。书中的每一章都提

    大小:147 MB数据结构

编辑推荐

如果你是一名正在学习计算机科学的学生,或者你是一个正在准备技术面试的软件开发者,本书将以一种更清晰、更具体,以及更吸引人的方式帮助你学习并回顾软件工程中*重要的部分-----数据结构和算法。

内容简介

本书作者强调实践知识和技能胜过理论,在书中为你展示了怎样使用数据结构实现有效的算法,并分析和测试了算法的性能。在本书中你将探索Java集合框架(JCF)中重要的类,它们是如何实现的,以及如何执行。书中的每一章都提供了动手练习及其在线测试代码。本书主要内容有:学习使用列表和映射等数据结构并理解它们是如何工作的。构建一个应用程序,用于读取维基百科页、解析页面内容并导航结果树。通过分析代码预测其运行时间和所需的内存空间。分别使用哈希表和二叉搜索树编写实现Map接口的类。创建一个简单的Web搜索引擎,包括一个网络爬虫、一个存储Web页面内容的索引器和一个返回用户查询结果的检索器。

作者简介

Allen B. Downey是奥林工程学院计算机科学领域的教授,曾经在韦尔斯利学院、科尔比学院和伯克利大学执教。他拥有伯克利大学计算机科学博士学位及麻省理工学院硕士和学士学位。他编写的其他书籍有:《Think Java》、《Think Python》、《Think Stats》和《Think Bayes》。

展开阅读
  • 数据结构:使用C语言(第3版)

    数据结构:使用C语言(第3版)

    数据结构是计算机专业和其他一些与计算机技术关系密切专业必修的核心课程。 本书系统地介绍了各种类型的数据结构和查找、排序的各种方法。对于每一种类型的数据结 构,都详细阐述了基本概念、各种不同的存储结构和不同存储结构上一些主要操作的实现算 法,并给出了许多设计实例帮助读者理解。另外,书中还介绍了递归算法的设计方法。全书 采用C语言作为算法描述语言。 本书既可作为大专院校计算机等专业的教科书,也可作为从事计算机应

    大小:690 KB数据结构

数据结构是计算机专业和其他一些与计算机技术关系密切专业必修的核心课程。 本书系统地介绍了各种类型的数据结构和查找、排序的各种方法。对于每一种类型的数据结 构,都详细阐述了基本概念、各种不同的存储结构和不同存储结构上一些主要操作的实现算 法,并给出了许多设计实例帮助读者理解。另外,书中还介绍了递归算法的设计方法。全书 采用C语言作为算法描述语言。

本书既可作为大专院校计算机等专业的教科书,也可作为从事计算机应用的工程 技术人员的自学参考书。

目录

  • 第3版前言
  • 第2版前言
  • 前言
  • 第0章 C语言程序设计
  • 0.1 程序的结构
  • 0.2 函数
  • 0.3 结构体
  • 0.4 自定义语句
  • 0.5 动态内存分配
  • 0.6 一个程序例子
  • 习题零
  • 第1章 绪论
  • 1.1 数据结构的基本概念
  • 1.2 抽象数据类型和软件构造方法
  • 1.3 算法和算法的时间复杂度
  • 1.4 算法书写规范
  • 习题一
  • 第2章 线性表
  • 2.1 线性表抽象数据类型
  • 2.2 线性表的顺序表示和实现
  • 2.3 线性表的链式表示和实现
  • 2.4 静态链表
  • 2.5 算法设计举例
  • 习题二
  • 第3章 堆栈和队列
  • 3.1 堆栈
  • 3.2 堆栈应用
  • 3.3 队列
  • 3.4 优先级队列
  • 习题三
  • 第4章 串
  • 4.1 串
  • 4.2 串的存储结构
  • 4.3 串基本操作的实现算法
  • 4.4 串的模式匹配算法
  • 习题四
  • 第5章 数组
  • 5.1 数组
  • 5.2 动态数组
  • 5.3 特殊矩阵的压缩存储
  • 5.4 稀疏矩阵的压缩存储
  • 习题五
  • 第6章 递归算法
  • 6.1 递归的概念
  • 6.2 递归算法的执行过程
  • 6.3 递归算法的设计方法
  • 6.4 递归过程和运行时栈
  • 6.5 递归算法的效率分析
  • 6.6 递归算法到非递归算法的转换
  • 6.7 设计举例
  • 习题六
  • 第7章 树和二叉树
  • 第8章 图
  • 第9章 排序
  • 第10章 查找
  • 第11章 文件
  • 附录1 上机实习内容规范和实习报告范例
  • 附录2 部分习题解答
  • 参考文献
展开阅读
  • 数据结构题集:C语言版

    数据结构题集:C语言版

    严蔚敏 吴伟民 编著本题集与《数据结构》(C语言版)(清华大学出版社,1997年出版)配套,习题和实习都是按相同的内容顺序编排的,很多习题涉及教科书上的内容或算法。 从认识的程度划分,数据结构的习题通常可分为三类:基础知识题、算法设计题和综合实习题。基础知识题主要是检查对概念知识的记忆和理解,一般可作为学生自测题。算法设计题的目的是练习对原理方法的简单应用,多数要求在某种数据存储结构上实现某一操作,是数据结构的基础

    大小:1.17 MB数据结构

严蔚敏 吴伟民 编著本题集与《数据结构》(C语言版)(清华大学出版社,1997年出版)配套,习题和实习都是按相同的内容顺序编排的,很多习题涉及教科书上的内容或算法。 从认识的程度划分,数据结构的习题通常可分为三类:基础知识题、算法设计题和综合实习题。基础知识题主要是检查对概念知识的记忆和理解,一般可作为学生自测题。算法设计题的目的是练习对原理方法的简单应用,多数要求在某种数据存储结构上实现某一操作,是数据结构的基础训练,构成了课外作业的主体。综合实习题则训练知识的综合应用和软件开发能力,主要是针对具体应用问题,选择、设计和实现抽象数据类型(ADT)的可重用模块,并以此为基础开发满足问题要求的小型应用软件,应将其看作软件工程的综合性基础训练的重要一环。 主要内容有:习题与学习指导、实习题和部分习题的提示或答案三大部分和一个附录(“数据结构算法演示系统(类C描述语言3.1中文版)使用手册”,此软件由清华大学出版社出版)。本书第一篇含有全部400多个习题,组织成12章,分别对应教科书中各章内容,并在每章之前给出该章的内容提要和学习要求。这些习题是作者在多年教学过程中所积累资料的基础上,参考大量国外教材之后精心设计而成的。书中对特别推荐的题目作了标记,并对每道习题的难易程度按五级划分法给出了难度系数,仅供参考。第二篇分别以抽象数据类型、线性表、栈和队列、串、数组和广义表、树和图以及查找和排序为核心,设置了7组上机实习题,每组有3至9个题目供读者自由选择。希望这些实习题能对习题起到良好的补充作用,使读者受到涉及“从问题到程序”的应用软件设计的完整过程的综合训练,培养合作能力,成为将来进行软件开发和研究工作的“实践演习”。 第三篇安排了部分习题的提示或解答。对于多数有唯一确定解的题给出了答案,而对算法题则有选择地作了示范解答或提示。但是,算法的解答都不是唯一的,书中的解答也不一定是臻于完美的。 本书内容丰富、程序设计观点新颖,在内容的详尽程度上接近课程辅导材料,不仅可作为大专院校的配套教材,也是广大工程技术人员和自学读者颇有帮助的辅助教材。

目录

  • 第一篇习题与学习指导1
  • 第0章本篇提要与作业规范1
  • 第1章绪论(预备知识)7
  • 第2章线性表12
  • 第3章栈和队列21
  • 第4章串27
  • 第5章数组与广义表31
  • 第6章树和二叉树37
  • 第7章图46
  • 第8章动态存储管理51
  • 第9章查找54
  • 第10章内部排序60
  • 第11章外部排序67
  • 第12章文件70
  • 第二篇实习题72
  • 一、 概述72
  • 二、 实习步骤73
  • 三、 实习报告规范75
  • 实习0抽象数据类型76
  • 实习1线性表及其应用79
  • 实习2栈和队列及其应用96
  • 实习3串及其应用116
  • 实习4数组和广义表136
  • 实习5树、图及其应用148
  • 实习6存储管理、查找和排序165
  • 第三篇部分习题的解答或提示180
  • 附录数据结构算法演示系统DSDEMO(类C描述语言
  • 31中文版)使用手册222
展开阅读

相关教程