- ISBN:9787121381010
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:26cm
- 页数:10,285页
- 出版时间:2020-01-01
- 条形码:9787121381010 ; 978-7-121-38101-0
本书特色
全书采用C语言作为数据结构和算法的描述语言,对数据结构的定义和算法描述详细,代码注释完整,便于初学者模仿训练,循序渐进,稳步提高。本书既可作为高等院校计算机科学与技术、软件工程、通信工程等信息类专业的教材,也可供从事软件开发与工程应用设计的工作人员参考使用。 数据结构是计算机和信息技术类等相关专业的一门重要的专业基础课程。随着当前高等教育的发展和社会对各类信息人才需求的不断变化,对于数据结构课程的内容提出了更高、更全面的要求。数据结构的概念既抽象又具体,抽象在于可以脱离计算机而存在,具体则在于可用程序代码在计算机中加以实现,这对于教材的内容也提出了更高的要求。本书结合数据结构课程的发展现状和趋势,具有难度适中、结构合理、应用性强的特点。
内容简介
全书共9章, 内容包括第1章数据结构基础, 综述数据结构的基本概念 ; 第2章至第5章主要讨论几种基本的线性结构, 即线性表、栈和队列、串、数组和广义表 ; 第6章和第7章主要介绍非线性结构, 即树和二叉树、图 ; 第8章和第9章分别讨论两种基本的操作, 即查找和排序。
目录
1.1 数据结构的基本概念 .................................................................................................... 2
1.1.1 数据结构的研究内容 ......................................................................................... 2
1.1.2 基本概念和术语 ................................................................................................. 5
1.1.3 数据结构课程的内容 ......................................................................................... 8
1.2 数据类型和抽象数据类型 ............................................................................................ 9
1.2.1 数据类型 ............................................................................................................. 9
1.2.2 抽象数据类型 ..................................................................................................... 9
1.3 算法和算法分析 .......................................................................................................... 10
1.3.1 算法特性 ........................................................................................................... 11
1.3.2 算法描述 ........................................................................................................... 12
1.3.3 算法性能分析 ................................................................................................... 12
1.4 本章小结 ...................................................................................................................... 15
习题 ....................................................................................................................................... 16
编程实例 ............................................................................................................................... 18
第2 章 线性表 ............................................................................................. 19
2.1 线性表的定义 .............................................................................................................. 20
2.1.1 线性表的逻辑结构 ........................................................................................... 20
2.1.2 线性表的抽象数据类型 ................................................................................... 20
2.2 线性表的顺序存储及实现 .......................................................................................... 22
2.2.1 顺序表 ............................................................................................................... 22
2.2.2 顺序表的基本运算 ........................................................................................... 23
2.3 线性表的链式存储及实现 .......................................................................................... 28
vi | 数据结构案例教程(C 语言版)
2.3.1 单链表 ............................................................................................................... 29
2.3.2 单链表的基本运算 ........................................................................................... 30
2.3.3 循环链表 ........................................................................................................... 36
2.3.4 双向链表 ........................................................................................................... 37
2.3.5 静态链表 ........................................................................................................... 39
2.3.6 单链表应用举例 ............................................................................................... 40
2.4 顺序表与链表的比较 .................................................................................................. 43
2.5 本章小结 ...................................................................................................................... 44
习题 ....................................................................................................................................... 44
编程实例 ............................................................................................................................... 46
第3 章 栈和队列 ......................................................................................... 48
3.1 栈 .................................................................................................................................. 49
3.1.1 栈的定义 ........................................................................................................... 49
3.1.2 栈的表示和实现 ............................................................................................... 50
3.2 栈的应用 ...................................................................................................................... 55
3.2.1 数制转换问题 ................................................................................................... 56
3.2.2 括号匹配检验 ................................................................................................... 57
3.2.3 表达式求值 ....................................................................................................... 58
3.2.4 栈与递归 ........................................................................................................... 61
3.3 队列 .............................................................................................................................. 64
3.3.1 队列的定义 ....................................................................................................... 64
3.3.2 队列的表示和实现 ........................................................................................... 65
3.4 队列的应用 .................................................................................................................. 71
3.5 本章小结 ...................................................................................................................... 73
习题 ....................................................................................................................................... 74
编程实例 ............................................................................................................................... 75
第4 章 串 .................................................................................................... 79
4.1 串的定义和基本运算 .................................................................................................. 80
4.1.1 串的定义 ........................................................................................................... 80
4.1.2 串的基本操作 ................................................................................................... 81
4.2 串的存储结构 .............................................................................................................. 82
4.2.1 定长顺序存储 ................................................................................................... 82
4.2.2 堆存储 ............................................................................................................... 83
目 录 | vii
4.2.3 链式存储 ........................................................................................................... 85
4.3 串的运算实现 .............................................................................................................. 86
4.4 串的模式匹配 .............................................................................................................. 90
4.4.1 BF 算法 ............................................................................................................. 90
4.4.2 KMP 算法 ......................................................................................................... 92
4.5 本章小结 ...................................................................................................................... 95
习题 ....................................................................................................................................... 96
编程实例 ............................................................................................................................... 99
第5 章 数组和广义表 ................................................................................ 103
5.1 数组的定义及存储 .................................................................................................... 104
5.1.1 数组的定义 ..................................................................................................... 104
5.1.2 数组的基本操作 ............................................................................................. 105
5.1.3 数组的顺序存储 ............................................................................................. 105
5.2 特殊矩阵的压缩存储 ................................................................................................ 107
5.2.1 对称矩阵 ......................................................................................................... 108
5.2.2 三角矩阵 ......................................................................................................... 109
5.2.3 对角矩阵 ......................................................................................................... 110
5.3 稀疏矩阵 ..................................................................................................................... 111
5.3.1 稀疏矩阵的三元组表存储 .............................................................................. 111
5.3.2 稀疏矩阵的十字链表存储 ............................................................................. 115
5.4 广义表 ........................................................................................................................ 117
5.4.1 广义表的定义 ................................................................................................. 117
5.4.2 广义表的存储结构 ......................................................................................... 119
5.4.3 广义表的基本操作实现 ................................................................................. 121
5.5 本章小结 .................................................................................................................... 122
习题 ..................................................................................................................................... 123
编程实例 ............................................................................................................................. 124
第6 章 树和二叉树 .................................................................................... 127
6.1 树的定义与基本术语 ................................................................................................ 128
6.1.1 树的定义 ......................................................................................................... 128
6.1.2 树的基本术语 ................................................................................................. 131
6.2 二叉树 ........................................................................................................................ 131
6.2.1 二叉树的定义 ................................................................................................. 131
viii | 数据结构案例教程(C 语言版)
6.2.2 二叉树的性质 ................................................................................................. 134
6.2.3 二叉树的存储实现 ......................................................................................... 136
6.3 遍历二叉树 ................................................................................................................ 139
6.3.1 遍历二叉树的递归实现 ................................................................................. 139
6.3.2 遍历二叉树的非递归实现 ............................................................................. 141
6.3.3 遍历算法的应用 ............................................................................................. 145
6.4 线索二叉树 ................................................................................................................ 148
6.4.1 线索二叉树的基本概念 ................................................................................. 148
6.4.2 线索二叉树的运算实现 ................................................................................. 150
6.5 树和森林 .................................................................................................................... 153
6.5.1 树的存储结构 ................................................................................................. 153
6.5.2 树、森林与二叉树的转换 ............................................................................. 156
6.5.3 树和森林的遍历 ............................................................................................. 158
6.6 哈夫曼树及其应用 .................................................................................................... 159
6.6.1 哈夫曼树的基本概念 ..................................................................................... 159
6.6.2 构造哈夫曼树 ................................................................................................. 161
6.6.3 哈夫曼编码 ..................................................................................................... 163
6.7 本章小结 .................................................................................................................... 165
习题 ..................................................................................................................................... 166
编程实例 ............................................................................................................................. 168
第7 章 图 .................................................................................................. 172
7.1 图的定义与基本术语 ................................................................................................ 173
7.1.1 图的定义 ......................................................................................................... 173
7.1.2 基本术语 ......................................................................................................... 175
7.2 图的存储结构 ............................................................................................................ 177
7.2.1 邻接矩阵 ......................................................................................................... 177
7.2.2 邻接链表 ......................................................................................................... 179
7.2.3 十字链表 ......................................................................................................... 182
7.2.4 邻接多重表 ..................................................................................................... 183
7.3 图的遍历 .................................................................................................................... 184
7.3.1 深度优先搜索 ................................................................................................. 185
7.3.2 广度优先搜索 ................................................................................................. 187
7.4 图的应用 .................................................................................................................... 189
7.4.1 *小生成树 ..................................................................................................... 189
目 录 | ix
7.4.2 *短路径问题 ................................................................................................. 195
7.4.3 AOV 网与拓扑排序 ....................................................................................... 200
7.4.4 AOE 网与关键路径 ........................................................................................ 203
7.5 本章小结 .................................................................................................................... 208
习题 ..................................................................................................................................... 209
编程实例 ............................................................................................................................. 211
第8 章 查找 ............................................................................................... 216
8.1 查找的基本概念 ........................................................................................................ 217
8.2 线性表的查找 ............................................................................................................ 218
8.2.1 顺序查找 ......................................................................................................... 218
8.2.2 折半查找 ......................................................................................................... 219
8.2.3 分块查找 ......................................................................................................... 222
8.3 树表的查找 ................................................................................................................ 223
8.3.1 二叉排序树 ..................................................................................................... 223
8.3.2 平衡二叉树 ..................................................................................................... 229
8.3.3 B 树.................................................................................................................. 234
8.4 散列表的查找 ............................................................................................................ 241
8.4.1 散列表的基本概念 ......................................................................................... 241
8.4.2 散列函数的构造方法 ..................................................................................... 242
8.4.3 处理冲突的方法 ............................................................................................. 244
8.4.4 散列表的查找 ................................................................................................. 247
8.5 本章小结 .................................................................................................................... 248
习题 ..................................................................................................................................... 249
编程实例 ............................................................................................................................. 251
第9 章 排序 ............................................................................................... 254
9.1 排序的基本概念 ........................................................................................................ 255
9.1.1 什么是排序 ..................................................................................................... 255
9.1.2 排序的实现 ..................................................................................................... 256
9.2 插入排序 .................................................................................................................... 257
9.2.1 直接插入排序 ................................................................................................. 257
9.2.2 折半插入排序 ................................................................................................. 259
9.2.3 希尔排序 ......................................................................................................... 260
9.3 交换排序 .................................................................................................................... 261
x | 数据结构案例教程(C 语言版)
9.3.1 冒泡排序 ......................................................................................................... 261
9.3.2 快速排序 ......................................................................................................... 263
9.4 选择排序 .................................................................................................................... 266
9.4.1 简单选择排序 ................................................................................................. 266
9.4.2 堆排序 ............................................................................................................. 268
9.5 归并排序 .................................................................................................................... 273
9.6 基数排序 .................................................................................................................... 275
9.6.1 多关键字排序 ................................................................................................. 275
9.6.2 链式基数排序 ................................................................................................. 275
9.7 本章小结 .................................................................................................................... 279
习题 ..................................................................................................................................... 280
编程实例 ............................................................................................................................. 282
作者简介
自参加工作以来,一直从事教学及科研工作,担任电话机、手机、电视机、VCD、计算机网络设计、计算机网站建设等专业课教学工作。在教学实践中形成了“激趣、启思、求活、务实”的教学风格和“注重启迪、鼓励创新”的教学特点,教学效果优秀,受到学生欢迎。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0