注册 登录 进入教材巡展
#
  • #

出版时间:2023-08

出版社:中国铁道出版社

以下为《数据结构》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 中国铁道出版社
  • 9787113303273
  • 1版
  • 502224
  • 48256914-2
  • 16开
  • 2023-08
  • 计算机及相关专业
  • 本科 高职
作者简介
李兰,教授,主讲面向对象程序设计、数据结构、数据库原理、操作系统等10多门计算机主干课程。编写过6部教材,其中 一部荣获2009年山东省优秀教材二等奖,另一部教材在2020年全国高等学校优秀教材评选中获山东省优秀教材。主持省、市、校教改项目15项,目前主持1门省级一流课程,在科研方面,参加2项国家基金,4项山东省教育厅科技项目。

刘庆海,主讲程序设计、数据库应用及算法分析等课程,主编《计算机文化基础》《VFP程序基础》等教材。获"全国信息技术应用大赛"国家一等奖,主持并参与《计算机程序实践课的教学测评系统》、《计算机实践课技能考核方式研究与实现》和《基于Web的教学资源平台建设与研究》多项科研、教改等研究课题。荣获2015年度省青年教师教育教学研究成果二等奖、校区中青年教师教学课件比赛二等奖。

张艳,主讲数据结构、算法设计与分析、程序设计基础(C语言)、面向对象程序设计、Web系统与技术、Android程序设计、数据库系统概论、网站规划与实现等课程。参与编写《C++面向对象程序设计》教材。
查看全部
内容简介
本书针对应用型本科高校计算机类专业编写,讲解数据结构的概念和原理,分析数据结构的基本运算,并给出了解决实际问题的各种经典算法。全书内容包括线性表、栈和队列、串、数组和广义表、树和二叉树、图、查找、排序。本书内容精练、逻辑性强、注重基础、突出重点、实例丰富、实用性强。
书中采用 C++语言描述算法,清晰简洁,易于学生理解和掌握。为帮助读者深入理解、巩固和深化理论知识,每章后配有习题,可供不同层次的读者选用。
本书适合作为应用型本科高校计算机类专业教材,也可作为信息类专业教材,还可作为计算机自学人员的学习用书。
目录
第 1 章 绪论 1
1.1 问题求解策略 ·······1
1.1.1 问题抽象和求解 ·········· 1
1.1.2 问题求解过程 ············· 2
1.1.3 计算机求解问题过程 ···· 2
1.2 数据结构概念 ·······3
1.2.1 数据结构实例 ············· 3
1.2.2 基本概念和术语 ·········· 6
1.2.3 数据结构······ 7
1.3 算法及其描述 ····· 10
1.3.1 算法 ··········· 10
1.3.2 算法描述····· 11
1.4 算法分析与评价 ·· 12
1.4.1 算法的设计要求 ········· 12
1.4.2 算法效率的度量 ········· 12
小结 ········· 15
习题 ········· 15
第 2 章 线性表 ·········· 19
2.1 线性表的基本概念 ············· 19
2.1.1 线性表的定义 ············ 19
2.1.2 线性表的抽象数据类型 20
2.2 线性表的顺序结构及运算实现 ············· 21
2.2.1 线性表的顺序存储结构 21
2.2.2 线性表在顺序存储结构下的运算实现 ·········· 23
2.3 线性表的链式存储和运算实现 · 28
2.3.1 链表的存储结构 ········· 29
2.3.2 单链表 ········ 31
2.3.3 循环链表····· 37
2.3.4 双向链表····· 38
2.3.5 循环双链表 · 42
2.3.6 静态链表····· 43
2.4 线性表的应用——一元多项式计算 ······· 44
2.4.1 一元多项式表示 ········· 44
2.4.2 一元多项式相加 ········· 45
2.5 顺序表和链表的比较 ·········· 46
小结 ········· 47
习题 ········· 48
第 3 章 栈和队列 ······· 52
3.1 栈 ····· 52
3.1.1 定义及其基本运算 ······ 52
3.1.2 顺序栈及基本运算 ······ 54
3.1.3 链式栈及基本运算 ······ 58
3.2 栈的应用 ··········· 61
3.2.1 中缀表达式 · 62
3.2.2 后缀表达式 · 62
3.2.3 后缀表达式求值 ········· 64
3.3 栈与递归 ··········· 65
3.3.1 递归定义····· 65
3.3.2 递归过程····· 66
3.3.3 应用举例····· 66
3.4 队列··· 69
3.4.1 定义及其基本运算 ······ 69
3.4.2 顺序队列及基本运算 ··· 71
3.4.3 链式队列及基本运算 ··· 74
3.3.4 队列应用举例 ············ 77
小结 ········· 79
习题 ········· 79
第 4 章 串 ·· 84
4.1 串及其运算 ········ 84
4.1.1 串的逻辑结构 ············ 84
4.1.2 串的基本运算 ············ 85
4.2 串的存储结构 ····· 87
4.2.1 串的顺序存储结构及其基本运算的实现 ······· 87
4.2.2 串的链式存储结构及其基本运算的实现 ······· 89
4.2.3 串的堆分配存储结构及其基本运算的实现 ···· 93
4.3 串的模式匹配 ····· 95
4.3.1 Brute-Force 算法 ········· 95
4.3.2 KMP 算法 ··· 96
4.3.3 Sunday 算法 · 99
4.4 串的应用 ·········· 100
小结 ········ 101
习题 ········ 101
第 5 章 数组和广义表 ············· 104
5.1 数组·· 104
5.1.1 数组的定义 ············· 104
5.1.2 数组的基本操作 ······· 105
5.1.3 数组的存储结构 ······· 106
5.2 矩阵的压缩存储 · 108
5.2.1 特殊矩阵的压缩存储方法 ········· 108
5.2.2 稀疏矩阵的压缩存储方法 ·········· 110
5.3 广义表 ············· 120
5.3.1 广义表的定义 ·········· 120
5.3.2 广义表的存储结构 ···· 122
5.3.3 广义表的基本操作 ···· 124
小结 ········ 129
习题 ········ 130
第 6 章 树和二叉树 ·· 135
6.1 树的基本概念 ···· 135
6.1.1 树的定义和表示 ······· 135
6.1.2 树的基本术语 ·········· 136
6.2 二叉树 ············· 138
6.2.1 二叉树的定义 ·········· 138
6.2.2 二叉树的性质 ·········· 138
6.3 二叉树的存储表示 ············ 142
6.3.1 二叉树的顺序存储表示 ············ 142
6.3.2 二叉树的链式存储表示 ············ 143
6.4 二叉树的遍历及其应用 ······ 145
6.4.1 二叉树遍历的递归算法 ············ 146
6.4.2 二叉树遍历的应用 ···· 148
6.4.3 二叉树遍历的非递归算法 ········· 151
6.5 线索二叉树 ······· 157
6.5.1 线索二叉树的概念 ···· 157
6.5.2 中序线索化二叉树 ···· 159
6.5.3 遍历中序线索化二叉树 ············ 163
6.6 树与森林 ·········· 164
6.6.1 树的存储表示 ·········· 164
6.6.2 树/森林与二叉树的转换 ··········· 166
6.6.3 树与森林的遍历 ······· 169
6.7 哈夫曼树及其应用 ············ 170
6.7.1 带权路径长度 ·········· 172
6.7.2 哈夫曼树··· 173
6.7.3 哈夫曼编码 ············· 177
小结 ········ 178
习题 ········ 179
第 7 章 图 183
7.1 图及其基本运算 · 183
7.1.1 图的定义··· 183
7.1.2 图的基本术语 ·········· 184
7.1.3 图的基本运算 ·········· 185
7.2 图的存储结构 ···· 186
7.2.1 邻接矩阵··· 186
7.2.2 邻接表 ······ 187
7.2.3 十字链表··· 189
7.2.4 邻接多重表 ············· 190
7.3 图的遍历 ·········· 191
7.3.1 深度优先遍历 ·········· 191
7.3.2 广度优先遍历 ·········· 193
7.4 最小生成树 ······· 195
7.4.1 克鲁斯卡尔算法 ······· 195
7.4.2 普里姆算法 ············· 197
7.5 最短路径 ·········· 199
7.5.1 求某一顶点到其余顶点的最短路径 ··········· 199
7.5.2 每对顶点之间的最短路径 ········· 203
7.6 拓扑排序 ·········· 206
V
7.7 关键路径 ·········· 209
小结 ········ 213
习题 ········ 213
第 8 章 查找 ··········· 218
8.1 基本概念 ·········· 218
8.2 顺序表的静态查找 ············ 219
8.2.1 顺序查找··· 219
8.2.2 二分查找··· 220
8.2.3 分块查找··· 223
8.3 树表的动态查找 · 226
8.3.1 二叉排序树 ············· 227
8.3.2 平衡二叉树 ············· 232
8.3.3 B 树 ········· 236
8.4 哈希表查找 ······· 238
8.4.1 哈希表的基本思想 ···· 238
8.4.2 哈希函数的构造方法 · 238
8.4.3 散列冲突及解决方法 · 240
8.4.4 散列查找的性能分析 · 242
小结 ········ 243
习题 ········ 244
第 9 章 排序 ··········· 248
9.1 排序的基本概念 · 248
9.1.1 排序及其分类 ·········· 248
9.1.2 排序算法的效率分析 · 249
9.2 插入排序 ·········· 250
9.2.1 直接插入排序 ·········· 250
9.2.2 折半插入排序 ·········· 252
9.2.3 希尔排序··· 253
9.3 交换排序 ·········· 255
9.3.1 冒泡排序··· 255
9.3.2 快速排序··· 257
9.4 选择排序 ·········· 260
9.4.1 简单选择排序 ·········· 260
9.4.2 堆排序 ······ 261
9.5 归并排序 ·········· 266
9.6 基数排序 ·········· 269
9.7 外部排序 ·········· 271
9.7.1 外部排序过程 ·········· 272
9.7.2 多路平衡归并 ·········· 272
9.7.3 置换-选择排序 ········· 274
9.8 各种排序方法的比较 ········· 275
小结 ········ 276