计算机类专业教育 > 数据结构与算法类

实用数据结构基础(第四版)

书号:9787113207489 套系名称:普通高等院校计算机类专业规划教材. 精品系列

作者:陈元春 王中华 张 亮 王 勇 出版日期:2015-09-01

定价:37.00 页码 / 开本:308 /16

策划编辑:周海燕 责任编辑:周海燕 彭立辉

适用专业:无 适用层次:高等学校

最新印刷时间:

资源下载
教学课件 教学素材
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色

  •         本书对数据结构的概念和原理进行了阐述,对数据结构的基本运算进行了分析,并给出了详细的实现过程。全书共分11章,内容包括:绪论、线性表、栈、队列、串、多维数组和广义表、树和二叉树、图、查找、排序、数据结构课程设计等,并在附录部分介绍了数据结构实验系统的组装。

            本书集教学内容、习题、实验和课程设计于一体,书中的重要算法均给出了完整的C/C++语言源程序,并全部在VC++环境中运行通过,一书在手就能方便地进行“数据结构”课程的理论学习和实验、课程设计等实践性环节的训练。

            本书适合作为高等院校计算机类专业数据结构课程的教材,也可以作为成人教育、自学考试和从事计算机应用的工程技术人员的参考用书。

  • 第 1 章   绪论......................................................................................................... 1
    1.1 什么是数据结构.......................................................................................... 1
    1.1.1  从数据结构实验演示系统认识数据结构.......................................... 1
    1.1.2  数据结构研究的内容........................................................................ 2
    1.2 数据的逻辑结构.......................................................................................... 5
    1.2.1  基本概念.......................................................................................... 5
    1.2.2  逻辑结构的描述............................................................................... 6
    1.3 数据的存储结构.......................................................................................... 7
    1.4 算法和算法的效率....................................................................................... 8
    1.4.1  算法................................................................................................. 8
    1.4.2  算法的效率...................................................................................... 9
    1.4.3  算法效率的评价..............................................................................10
    小结...................................................................................................................11
    实验...................................................................................................................12
    验证性实验1 数组、指针、结构体练习...................................................12
    自主设计实验1 学生成绩分析程序...........................................................14
    习题1.................................................................................................................14
    第 2 章   线性表 ................................................................................................... 18
    2.1 线性表的定义与运算..................................................................................18
    2.1.1  线性表的定义..................................................................................18
    2.1.2  线性表的基本操作..........................................................................19
    2.2 线性表的顺序存储......................................................................................20
    2.2.1  顺序表.............................................................................................20
    2.2.2  顺序表上基本运算的实现...............................................................21
    2.3 线性表的链式存储......................................................................................25
    2.3.1  线性链表.........................................................................................25
    2.3.2  线性链表上基本运算的实现...........................................................26
    2.3.3  循环链表.........................................................................................33
    2.3.4  双向链表.........................................................................................34
    小结...................................................................................................................35
    实验...................................................................................................................36
    验证性实验2 线性表子系统......................................................................36
    自主设计实验2 多项式求和......................................................................39
    实用数据结构基础 第四版
    2
    习题2.................................................................................................................40
    第 3 章   栈 .......................................................................................................... 46
    3.1 栈的定义和运算.........................................................................................46
    3.1.1  栈的定义和特性..............................................................................46
    3.1.2  栈的运算.........................................................................................47
    3.2 栈的存储和实现.........................................................................................47
    3.2.1  顺序栈.............................................................................................47
    3.2.2  链栈................................................................................................50
    3.3 栈的应用举例.............................................................................................51
    3.3.1  数制转换.........................................................................................52
    3.3.2  表达式求值.....................................................................................53
    3.3.3  子程序调用.....................................................................................56
    3.3.4  递归调用.........................................................................................57
    3.3.5  中断处理和现场保护.......................................................................58
    小结...................................................................................................................59
    实验...................................................................................................................59
    验证性实验3 栈子系统.............................................................................59
    自主设计实验3 后缀表达式求值..............................................................63
    习题3.................................................................................................................64
    第 4 章   队列....................................................................................................... 68
    4.1 队列的定义和运算......................................................................................68
    4.1.1  队列的定义和特性..........................................................................68
    4.1.2  队列的基本运算..............................................................................69
    4.2 队列的存储和实现......................................................................................69
    4.2.1  顺序队列.........................................................................................69
    4.2.2  链队列.............................................................................................73
    4.3 队列应用举例.............................................................................................75
    小结...................................................................................................................77
    实验...................................................................................................................77
    验证性实验4 队列子系统..........................................................................77
    自主设计实验4 循环队列的实现和运算...................................................81
    习题4.................................................................................................................81
    第 5 章   串 .......................................................................................................... 86
    5.1 串的定义和运算.........................................................................................86
    5.1.1  串的定义.........................................................................................86
    5.1.2  串的输入与输出..............................................................................87
    5.1.3  串的运算.........................................................................................88
    目 录
    3
    5.2 串的表示和实现.........................................................................................88
    5.2.1  定长顺序存储..................................................................................88
    5.2.2  链接存储.........................................................................................89
    5.2.3  串的堆分配存储结构.......................................................................90
    5.3 串运算的实现.............................................................................................91
    小结...................................................................................................................95
    实验...................................................................................................................95
    验证性实验5 串子系统.............................................................................95
    自主设计实验5 字符串分割处理..............................................................99
    习题5...............................................................................................................100
    第 6 章   多维数组和广义表................................................................................ 105
    6.1 多维数组..................................................................................................105
    6.1.1  逻辑结构.......................................................................................105
    6.1.2  存储结构.......................................................................................105
    6.2 特殊矩阵的压缩存储................................................................................107
    6.2.1  对称矩阵.......................................................................................108
    6.2.2  三角矩阵.......................................................................................108
    6.3 稀疏矩阵..................................................................................................110
    6.3.1  稀疏矩阵的存储............................................................................110
    6.3.2  稀疏矩阵的算法............................................................................113
    6.4 广义表......................................................................................................116
    6.4.1  广义表的定义和运算.....................................................................116
    6.4.2  广义表的首尾存储法.....................................................................118
    6.4.3  广义表的算法................................................................................119
    小结.................................................................................................................121
    实验.................................................................................................................121
    验证性实验6 稀疏矩阵和广义表子系统.................................................121
    自主设计实验6 稀疏矩阵十字链表的存储..............................................128
    习题6...............................................................................................................128
    第 7 章   树和二叉树.......................................................................................... 132
    7.1 树的定义和术语.......................................................................................132
    7.1.1  树的定义及表示法........................................................................132
    7.1.2  基本术语.......................................................................................133
    7.2 二叉树......................................................................................................134
    7.2.1  二叉树的定义................................................................................134
    7.2.2  二叉树的性质................................................................................135
    7.2.3  二叉树的存储................................................................................136
    7.3 遍历二叉树和线索二叉树.........................................................................140
    7.3.1  遍历二叉树...................................................................................140
    实用数据结构基础 第四版
    4
    7.3.2  恢复二叉树...................................................................................142
    7.3.3  线索二叉树...................................................................................144
    7.4 二叉树的转换...........................................................................................146
    7.4.1  一般树转换为二叉树.....................................................................146
    7.4.2  森林转换为二叉树........................................................................148
    7.4.3  二叉树转换为树和森林.................................................................148
    7.5 二叉树的应用...........................................................................................150
    7.5.1  二叉树的基本应用........................................................................150
    7.5.2  标识符树与表达式........................................................................151
    7.6 哈夫曼树及其应用....................................................................................153
    7.6.1  哈夫曼树的引入............................................................................153
    7.6.2  哈夫曼树的建立............................................................................155
    7.6.3  哈夫曼编码...................................................................................157
    小结.................................................................................................................158
    实验.................................................................................................................159
    验证性实验7 二叉树子系统....................................................................159
    自主设计实验7 标识符树与表达式求值.................................................165
    习题7...............................................................................................................166
    第 8 章   图 ........................................................................................................ 172
    8.1 图的定义和基本操作................................................................................172
    8.1.1  图的定义.......................................................................................172
    8.1.2  图的相关术语................................................................................173
    8.1.3  图的基本操作................................................................................175
    8.2 图的存储表示...........................................................................................175
    8.2.1  邻接矩阵.......................................................................................175
    8.2.2  邻接表...........................................................................................177
    8.2.3  十字链表.......................................................................................179
    8.3 图的遍历..................................................................................................181
    8.3.1  深度优先搜索................................................................................181
    8.3.2  广度优先搜索................................................................................182
    8.4 图的连通性...............................................................................................183
    8.4.1  无向图的连通分量和生成树.........................................................183
    8.4.2  最小生成树...................................................................................185
    8.5 最短路径..................................................................................................187
    8.6 有向无环图及其应用................................................................................189
    8.6.1  拓扑排序.......................................................................................190
    8.6.2  关键路径.......................................................................................191
    小结.................................................................................................................193
    实验.................................................................................................................194
    验证性实验8 图子系统...........................................................................194
    自主设计实验8 最小生成树....................................................................198
    目 录
    5
    习题8...............................................................................................................199
    第 9 章   查找..................................................................................................... 203
    9.1 查找的基本概念.......................................................................................203
    9.2 静态查找表...............................................................................................204
    9.2.1  顺序查找.......................................................................................204
    9.2.2  二分查找.......................................................................................206
    9.2.3  分块查找.......................................................................................209
    9.3 动态查找表...............................................................................................209
    9.3.1  二叉排序树...................................................................................209
    9.3.2  平衡二叉树...................................................................................214
    9.4 哈希表......................................................................................................217
    9.4.1  哈希表与哈希方法........................................................................217
    9.4.2  哈希函数的构造方法.....................................................................218
    9.4.3  处理冲突的方法............................................................................219
    小结.................................................................................................................221
    实验.................................................................................................................221
    验证性实验9 查找子系统........................................................................221
    自主设计实验9 哈希查找........................................................................226
    习题9...............................................................................................................227
    第 10 章   排序................................................................................................... 231
    10.1 概述........................................................................................................231
    10.2 插入排序................................................................................................232
    10.2.1  直接插入排序..............................................................................232
    10.2.2  二分插入排序..............................................................................234
    10.2.3  希尔排序.....................................................................................235
    10.3 快速排序法.............................................................................................236
    10.3.1  冒泡排序.....................................................................................236
    10.3.2  快速排序.....................................................................................238
    10.4 选择排序................................................................................................240
    10.4.1  简单选择排序..............................................................................241
    10.4.2  树形选择排序..............................................................................242
    10.4.3  堆排序.........................................................................................243
    10.5 归并排序................................................................................................245
    10.6 各种排序方法的比较..............................................................................246
    小结.................................................................................................................247
    实验.................................................................................................................247
    验证性实验10 排序子系统......................................................................247
    自主设计实验10 双向冒泡排序..............................................................254
    习题10 .............................................................................................................254
    实用数据结构基础 第四版
    6
    第 11 章   数据结构课程设计.............................................................................. 259
    11.1 课程设计的目的与内容..........................................................................259
    11.1.1  课程设计的目的..........................................................................259
    11.1.2  课程设计的内容..........................................................................260
    11.1.3  课程设计报告..............................................................................260
    11.1.4  课程设计的考核..........................................................................261
    11.2 课程设计的要求.....................................................................................262
    11.3 课程设计题目.........................................................................................263
    课题1 多项式运算...................................................................................263
    课题2 浮点数的IEEE 754标准格式转换................................................264
    课题3 稀疏矩阵的运算...........................................................................264
    课题4 非递归求解Hanoi问题................................................................266
    课题5 迷宫问题......................................................................................268
    课题6 非递归方式遍历二叉树................................................................268
    课题7 中缀表达式转后缀并求值............................................................269
    课题8 求字符串中最大长度的对称子串.................................................270
    课题9 二叉树的中序线索化及其非栈非递归遍历...................................271
    课题10 求二叉树中任意两个结点间的距离............................................271
    课题11 把二叉排序树转换成有序的双向链表........................................272
    课题12 在二叉树中找出和为某一值的所有路径.....................................272
    课题13 判断整数序列是否为二叉排序树的后序遍历序列......................273
    课题14 有向无环图的判定及拓扑排序...................................................273
    课题15 求AOE网的关键路径................................................................274
    课题16 求有向图的强连通分量..............................................................275
    课题17 基于十字链表有向图的遍历.......................................................276
    课题18 求最小生成树.............................................................................277
    课题19 Dijkstra算法求最短路径............................................................278
    课题20 双拼输入法的快速定位..............................................................278
    课题21 连通问题....................................................................................279
    课题22 哈希查找的实现与分析..............................................................281
    课题23 文件记录读取并排序..................................................................282
    课题24 平衡二叉树的构造及输出...........................................................283
    课题25 马对棋盘方格的遍历..................................................................283
    课题26 求两个字符串的扩展距离...........................................................285
    课题27 求汽车最少加油次数问题...........................................................285
    课题28 大整数运算.................................................................................286
    附录 A   数据结构实验系统的组装...................................................................... 287
    参考文献............................................................................................................ 292