标题：数据结构与算法教程
人民邮电出版社出版图书
书　名　数据结构与算法教程
丛 书 名　21世纪高等学校计算机规划教材——精品系列  [1]
标准书号　ISBN 978-7-115-25404-7
编目分类　TP311.12
作　者　朱明方 吴及 编著
译　者　--
责任编辑　武恩玉
开　本　16 开
印　张　20.5
字　数　541 千字
页　数　320 页
装　帧　平装
版　次　第1版第1次
初版时间　2011年11月
本 印 次　2011年11月
首 印 数　-- 册
定　价　39.00 元
内容提要
本书以清华大学电子系数据结构讲义为蓝本，主要针对高等院校非计算机专业开设“数据结构”课程的需要而编写的。全书从应用的角度，重点介绍数据处理中常用的数据结构——线性表、树与二叉树、图，以及基本的数据处理技术——查找和排序方法，同时通过实例把回溯法、分治法、贪心法、动态规划法等常用的算法设计思想的应用融入其中，把数据结构的介绍和常用算法设计的讨论紧密结合，并且辅之以充足的练习题，从而使读者更具体、更深刻地理解各种常用的数据结构，及它们与算法之间的关系，以达到学以致用的目的。
本书可以作为大专院校数据结构课程的教材，也可以作为从事计算机应用开发的科技人员的参考书。
作者信息朱明方 清华大学电子工程系教授，原电子工程系网络与人机语音通信研究所副所长，计算机与网络教学实验室主任，电子工程系教学工作委员会委员。长期从事计算机基础教学和多媒体信息处理方面的科研工作。参与完成国家及部级的科研项目多项，取得优秀成果；编写教材10多本，曾获部级优秀教材一等奖，多次获清华大学教学优秀成果奖，所编写的教材得到清华大学“985工程”的支持。
吴及 博士，清华大学电子工程系副教授，博士生导师，清华—讯飞语音技术联合实验室主任。从事数据结构与算法方面的教学工作，以及语音识别和多媒体信号处理方面的科研工作，承担了多项国家863科研项目，发表论文40余篇。担任全国人机语音通讯学术会议常设机构委员，并担任多个国际和全国学术会议程序委员会委员以及多个期刊和学术会议的的审稿人。
目　录第1章　绪论　1
1.1　预备知识　1
1.1.1　集合的笛卡儿积　1
1.1.2　二元关系　2
1.1.3　二元关系的基本性质和几种重要关系　3
1.2　什么是数据结构　4
1.2.1　从实际问题理解数据结构　4
1.2.2　数据结构所讨论的内容　6
1.2.3　如何表示数据结构　9
1.3　抽象数据类型　10
1.3.1　什么是抽象数据类型　10
1.3.2　抽象数据类型的定义与实现　12
1.4　算法与算法分析　13
1.4.1　什么是算法　13
1.4.2　算法描述　15
1.4.3　常用的算法设计方法　16
1.4.4　算法分析　21
习题　24
上机练习题　26
第2章　线性表的顺序存储及其运算　27
2.1　线性表的概念　27
2.1.1　 什么是线性表　27
2.1.2　线性表的抽象数据类型　29
2.2　顺序表及其运算实现　30
2.2.1　线性表的顺序存储——顺序表　30
2.2.2　顺序表的基本运算　31
2.2.3　顺序表应用例——求子集　36
2.3　栈　36
2.3.1　什么是栈　37
2.3.2　栈的抽象数据类型　39
2.3.3　顺序栈及其运算　39
2.4　栈应用　42
2.4.1　栈在优先级处理中的应用　42
2.4.2　栈与分治法　48
2.4.3　栈与回溯法　50
2.4.4　栈与递归　55
2.5　队列　63
2.5.1　队列及其抽象数据类型　63
2.5.2　顺序队列及其运算　64
2.5.3　队列应用例　68
* 2.5.4　优先队列　72
2.6　数组与特殊矩阵的表示　74
2.6.1　数组的顺序存储　74
2.6.2　规则矩阵的压缩存储　76
* 2.6.3　稀疏矩阵的三列二维数组表示——三元组顺序表　78
习题　81
上机练习题　82
第3章　链表　83
3.1　线性表的链式存储——线性链表　83
3.1.1　线性链表的结构特点　83
3.1.2　线性链表的运算　84
3.2　链式栈与链式队列　91
3.2.1　栈的链式存储——链式栈　91
3.2.2　队列的链式存储——链式队列　95
3.3　循环链表　98
3.3.1　循环链表的结构特点　98
3.3.2　循环链表的基本运算　99
3.3.3　链表应用例　103
*3.4　多重链表　109
3.4.1　多重链表结构　109
3.4.2　双向链表　110
*3.5　广义表　112
3.5.1　什么是广义表　113
3.5.2　广义表的存储表示　114
3.5.3　广义表的基本运算　116
习题　120
上机练习题　121
第4章　树与二叉树　122
4.1　树的基本概念　122
4.1.1　 什么是树　122
4.1.2　树的性质　127
4.2　二叉树　128
4.2.1　什么是二叉树　128
4.2.2　二叉树的基本性质　128
4.2.3　二叉树的抽象数据类型　131
4.2.4　二叉树的存储结构　131
4.2.5　二叉树的遍历及其他运算　133
* 4.2.6　线索二叉树　138
4.3　二叉树应用　141
4.3.1　表达式线性化　141
4.3.2　最优二叉树　143
4.3.3　二叉搜索树　148
4.3.4　堆　154
* 4.3.5　二叉树与减治法　160
4.4　树的运算　163
4.4.1　树的抽象数据类型　163
4.4.2　树的存储结构　164
4.4.3　树的遍历　165
* 4.4.4　树的其他运算　167
* 4.5　树与回溯法　170
4.5.1　问题解的描述——解空间树　171
4.5.2　回溯法的求解过程分析——遍历解空间树　172
4.5.3　回溯法求解问题的形式化描述　174
* 4.6　森林的遍历　176
4.6.1　森林与二叉树的转换　176
4.6.2　森林的遍历　177
习题　178
上机练习题　179
第5章　图　180
5.1　图的基本概念　180
5.1.1　图的定义和概念　180
5.1.2　图的抽象数据类型　184
*5.1.3　欧拉路径　185
5.2　图的存储结构　186
5.2.1　图的邻接矩阵表示　186
5.2.2　图的邻接表表示　189
*5.2.3　图的其他表示方法　192
5.3　图的遍历　195
5.3.1　图的深度优先遍历　195
5.3.2　图的广度优先遍历　197
5.3.3　图遍历的应用　198
*5.3.4　图的连通性　200
*5.4　有向图与有向无环图　201
5.4.1　有向图的连通性和传递闭包　202
*5.4.2　有向无环图和拓扑排序　204
*5.4.3　关键路径　207
5.5　最小生成树　208
5.5.1　图的生成树与最小生成树　209
5.5.2　普里姆(Prim)算法　210
5.5.3　克鲁斯卡尔(Kruskal)算法　213
5.5.4　贪心算法　215
5.6　最短路径问题　218
5.6.1　单源最短路径　218
5.6.2　全源最短路径　220
5.6.3　动态规划算法　223
5.7　图应用例——城市间公路交通网问题　227
5.7.1　问题描述　227
5.7.2　问题求解思路　228
习题　228
上机练习题　230
第6章　查找　231
6.1　线性查找表　231
6.1.1　顺序查找　232
6.1.2　折半查找　232
*6.1.3　斐波那契查找　234
6.1.4　线性查找表的性能比较　234
6.2　二叉搜索树查找性能　235
6.3　AVL树　236
6.3.1　BST的旋转操作　237
6.3.2　AVL树的插入和平衡化旋转　238
*6.3.3　AVL树的删除　240
*6.3.4　AVL树的性能　241
6.4　B-树　242
6.4.1　多路动态搜索树　242
6.4.2　B-树的查找　243
6.4.3　B-树的插入　244
*6.4.4　B-树的删除　245
6.5　散列方法　246
6.5.1　散列技术　246
6.5.2　散列函数　247
6.5.3　冲突处理　250
6.5.4　散列的删除　252
6.5.5　散列的性能　252
6.6　静态索引结构　253
6.6.1　索引查找　253
6.6.2　索引存储方式　254
*6.6.3　索引文件结构　255
6.7　模式匹配　258
6.7.1　字符串及其ADT　258
6.7.2　字符串的存储表示　259
6.7.3　字符串的模式匹配及简单匹配算法　259
6.7.4　字符串匹配的KMP算法　260
习题　263
上机练习题　264
第7章　排序　265
7.1　排序的概念及算法性能分析　265
7.2　基本排序方法　266
7.2.1　冒泡排序　267
7.2.2　插入排序　268
7.2.3　直接选择排序　272
7.2.4　基本排序方法的比较　273
7.3　快速排序　274
7.3.1　快速排序的过程　274
7.3.2　快速排序的性能分析　275
7.4　归并排序　276
7.4.1　二路归并　276
7.4.2　自底向上的归并排序　276
7.4.3　自顶向下的归并排序　278
*7.5　锦标赛排序　279
7.6　堆排序　280
7.6.1　堆排序的思想　280
7.6.2　堆排序的实现　282
7.7　内排序方法分析　283
*7.7.1　排序方法的下界　283
7.7.2　内排序方法的比较　284
7.8　线性时间复杂度的排序算法　285
*7.8.1　计数排序　285
7.8.2　基数排序　287
7.9　外部排序　290
7.9.1　外部排序方法　290
*7.9.2　基于败者树的k路归并方法　291
*7.9.3　排序——归并的改进　292
习题　296
上机练习题　297
实验指导　298
实验一　顺序表及其应用　299
实验二　求解迷宫问题　301
实验三　简单算术表达式的处理　302
实验四　求解简单背包问题　303
实验五　链表及其应用　304
实验六　实验室机时机位的管理　305
实验七　实现Huffman编码　307
实验八　文件管理的模拟　309
实验九　求网络站点间的最短连接　312
实验十　查找最高分与次高分　314
实验十一　比赛日程安排与成绩统计　316
基本信息
  作者：李春葆，苏光奎 编著
ISBN：10位[730211160X] 13位[9787302111603]
出版社：清华大学出版社
出版日期：2005-6-1
定价：￥25.00 元
内容提要
数据结构与算法设计是计算机专业的核心课程，主要传授数据组织方法和典型问题求解策略，具有一定的抽象性，不易掌握。
本书作者具有多年授课经验，对教学重点和学习难点有深刻了解。在内容安排上，以教学大纲为指导，充分考虑课程特点，兼顾学习习惯。全书分为11章，内容涉及数据结构的基本概念、线性表、栈和队列、串和数组、递归和广义表、树和二叉树、图、查找、内排序、外排序、文件以及算法设计技术。
书中精心设计大量例题，用于演示说明相关概念和方法；各章在课后都给出多个典型练习题，并在附录中提供参考答案。其目的是加深理解，强化应用。
本书适合用作大专院校相关专业“数据结构与算法”课程的教学用书。
编辑推荐
根据课程特点，以多年授课经验为基础，以教学大纲为指导编写而成。内容全面，结构合理，层次分明，脉络清晰。
书中精心设计大量例题，用于演示说明相关概念和方法；各章在课后都给出多个典型练习题，并在附录中提供参考答案。其目的是加深理解，强化应用。
适合用作大专院校相关专业“数据结构与算法”课程的教学用书。
目录
第1章 概论 
1.1 什么是数据结构 
1.1.1 逻辑结构 
1.1.2 存储结构 
1.1.3 数据运算 
1.1.4 数据结构和数据类型 
1.2 算法和算法分析 
1.2.1 算法及其表示 
1.2.2 算法分析 
练习题1 
第2章 线性表 
2.1 线性表的基本概念 
2.1.1 线性表的定义 
2.1.2 线性表及其基本运算 
2.2 线性表的顺序存储结构 
2.2.1 顺序表 
2.2.2 线性表基本运算在顺序表上的实现 
2.2.3 顺序实现的算法分析 
2.3 单链表存储结构 
2.3.1 单链表 
2.3.2 线性表基本运算在单链表上的实现 
2.3.3 循环单链表 
2.4 双链表存储结构
2.4.1 双链表 
2.4.2 线性表基本运算在双链表上的实现 
2.4.3 循环双链表 
2.5 链表的应用 
练习题2 
第3章 栈和队列 
3.1 栈 
3.1.1 栈的基本概念 
3.1.2 栈的顺序存储结构 
3.1.3 栈的链式存储结构 
3.2 队列 
3.2.1 队列的基本概念 
3.2.2 队列的顺序存储结构 
3.2.3 队列的链式存储结构 
练习题3 
第4章 串和数组 
4.1 串 
4.1.1 串的定义
4.1.2 串的顺序存储结构及其基本运算实现 
4.1.3 串的链式存储结构及其基本运算实现
4.1.4 串的模式匹配 
4.2 数组 
4.2.1 数组的定义 
4.2.2 数组存储的排列顺序 
4.2.3 数组基本运算的实现 
4.2.4 特殊矩阵的压缩存储 
4.3 稀疏矩阵 
4.3.1 稀疏矩阵的三元组表示 
4.3.2 稀疏矩阵的十字链表表示 
练习题4 
第5章 递归和广义表 
5.1 递归 
5.1.1 什么是递归 
5.1.2 如何设计递归算法 
5.2 广义表的定义 
5.3 广义表的存储表示 
5.4 广义表的基本运算算法 
5.5 广义表的递归算法 
练习题5 
第6章 树和二叉树 
6.1 树 
6.1.1 树的定义 
6.1.2 树的表示 
6.1.3 树的基本术语 
6.1.4 树的存储结构 
6.2 二叉树
……
第7章 图
第8章 查找
第9章 内排序
第10章 文件
第11章 算法设计技术
附录A 习题参考答案 
附录B 本书算法中使用的C/C++语法说明
参考文献
前言
数据结构与算法设计是计算机专业的核心课程。主要传授组织数据方法和各种典型的问题求解策略。本书是作者针对该课程的特点，在总结长期教学经验的基础上编写的。全书分为11章，第1章为概论，介绍数据结构的基本概念，特别强调算法分析的方法；第2章为线性表，介绍线性表的两种存储结构即顺序表和链表的逻辑结构与基本运算的实现过程；第3章为栈和队列，介绍这两种特殊的线性结构的概念与应用；第4章为串和数组，介绍串的概念、模式匹配算法、多维数组和稀疏矩阵的基本运算；第5章为递归和广义表，介绍广义表的概念与递归运算算法；第6章为树和二叉树，介绍树和二叉树的概念与各种运算，特别突出递归算法的实..
序言
为适应信息社会高速发展的需求，目前全国各类高等院校都在进行计算机教学的全方位改革，目的是规划出一整套面向计算机与信息技术专业、具有中国高校计算机教育特色的课程计划和教材体系，本丛书就是在这一背景下应运而生的。我们组织了由全国高校计算机专业的专家教授组成的“计算机与信息技术专业应用教材”课题研究组，通过对计算机和信息技术专业全方位的研讨，并结合我国当前的实际情况，编写了这套系统性、科学性和实践性都很强的丛书。丛书特色先进性：力求介绍最新的技术和方法先进性和时代性是教材的生命，计算机与信息技术专业的教学具有更新快、内容多的特点，本丛书在体例安排和实际讲..