新書推薦:
《
SDGSAT-1卫星热红外影像图集
》
售價:NT$
2030.0
《
股市趋势技术分析(原书第11版)
》
售價:NT$
1010.0
《
汉匈战争全史
》
售價:NT$
454.0
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
不止江湖
》
售價:NT$
449.0
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:NT$
704.0
《
双城史
》
售價:NT$
505.0
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:NT$
254.0
|
內容簡介: |
学会与数据打交道的方法,能够为数据建立结构并基于该结构进行操作是智能化时代IT工作者的技能。
《数据结构》的核心目标是通过学习数据结构的基本概念、数据的逻辑结构、存储结构及算法设计等,学生可以学会从业务领域中抽象出与数据相关的问题,掌握将问题从业务领域映射到技术领域的步骤和方法,提高解决问题的能力。《数据结构》注重学生抽象思维和计算思维的养成,是一本以“学生为中心”传递方法和思维的教材。《数据结构》是“以问题为导向,以任务为驱动”展开的,每章设置一个问题及解决该问题所需完成的若干个任务,并随着任务进程的推进逐步将知识、技术和方法融入其中,使得任务完成过程与知识学习过程、方法训练过程、思维养成过程融为一体。
|
目錄:
|
目录
第1章 数据结构概述 1
1.1 为捐款软件的数据设计数据结构 2
1.1.1 数据及其基本术语 2
1.1.2 数据结构的定义 4
1.1.3 抽象数据类型 4
1.1.4 逻辑结构及其构建 7
1.2 为捐款软件的数据设计存储结构 9
1.2.1 存储结构的定义 9
1.2.2 顺序存储结构 10
1.2.3 链式存储结构 11
1.3 基于捐款软件的数据结构定义操作及实现算法 13
1.3.1 算法的定义和特性 13
1.3.2 设计算法的要求 14
1.3.3 时间复杂度和空间复杂度 17
1.4 数据结构问题的解题步骤 20
1.5 本章小结 21
习题 22
第2章 预备知识 23
2.1 定义学生成绩管理系统中各类数据的数据类型 23
2.1.1 数据类型 24
2.1.2 变量 25
2.1.3 各类数据类型间的转换 27
2.2 设计学生数据构成并为之定义数据类型 28
2.2.1 结构体 28
2.2.2 定义结构体数据类型及变量 28
2.2.3 访问结构体成员 29
2.3 顺序存储学生数据 29
2.3.1 数组 30
2.3.2 定义数组 30
2.3.3 定义结构体数组 31
2.4 链式存储学生数据 31
2.4.1 指针 32
2.4.2 链表 33
2.4.3 链表的常见操作 34
2.5 基于学生成绩管理系统的数据结构定义操作及实现算法 35
2.5.1 模块化程序设计 35
2.5.2 函数及定义函数 35
2.5.3 调用函数 37
2.6 C语言的语句 38
2.7 预处理命令 38
2.7.1 宏定义 38
2.7.2 文件包含 39
2.8 本章小结 40
习题 40
第3章 线性表结构 42
3.1 为选票系统选择合适的数据结构 43
3.2 为选票系统构建逻辑结构 44
3.3 为选票系统构建顺序存储结构 45
3.3.1 顺序存储结构 46
3.3.2 基于顺序表的选票系统操作的实现 48
3.4 为选票系统构建链式存储结构 53
3.4.1 链式存储结构 54
3.4.2 单链表 58
3.4.3 为基于链表的选票系统实现操作 60
3.4.4 循环链表 65
3.4.5 双向链表 66
3.4.6 循环双向链表 69
3.5 本章小结 69
习题 70
第4章 栈结构 71
4.1 为列车调度系统选择合适的数据结构 72
4.2 为列车调度系统构建逻辑结构和存储结构 73
4.3 为列车调度系统实现顺序存储 74
4.3.1 顺序栈 74
4.3.2 为基于顺序栈的列车调度系统实现操作 77
4.3.3 为列车调度系统实现多个仓库的共享 78
4.4 为列车调度系统实现链式存储 81
4.4.1 链栈 82
4.4.2 为基于链栈的列车调度系统实现操作 83
4.5 栈的应用 84
4.6 本章小结 87
习题 88
第5章 队列结构 89
5.1 为就诊叫号系统选择合适的数据结构 90
5.2 为就诊叫号系统构建逻辑结构和存储结构 92
5.3 为就诊叫号系统实现顺序存储 93
5.3.1 顺序队列 93
5.3.2 循环队列 96
5.4 为就诊叫号系统实现链式存储 98
5.4.1 链队列 99
5.4.2 链队列的操作 99
5.5 队列的应用 101
5.6 本章小结 101
习题 102
第6章 树结构 103
6.1 “爱心帮扶”调研项目的理论知识支撑 104
6.1.1 树的定义 104
6.1.2 树的基本术语 106
6.1.3 树的关键术语 107
6.2 “爱心帮扶”调研项目中单元逻辑表示 109
6.2.1 树的逻辑表示 109
6.2.2 逻辑表示的执行步骤 110
6.2.3 调查项目的逻辑表示 111
6.3 “爱心帮扶”调研项目中单元存储结构 112
6.3.1 树的存储结构 112
6.3.2 双亲表示法 113
6.3.3 孩子表示法 116
6.3.4 孩子兄弟表示法 121
6.4 “爱心帮扶”调研项目中单元遍历方法 122
6.4.1 遍历的定义 122
6.4.2 树的遍历 123
6.4.3 森林的遍历 124
6.5 本章小结 126
习题 126
第7章 二叉树结构 127
7.1 “爱心帮扶”调研项目的
二叉树理论知识支撑 127
7.1.1 二叉树的定义 127
7.1.2 二叉树的特殊形态 128
7.1.3 二叉树的基本形态 129
7.1.4 二叉树的性质 130
7.2 “爱心帮扶”调研项目的逻辑结构的相互转换 131
7.3 “爱心帮扶”调研项目的二叉树遍历方法 134
7.3.1 遍历的定义 134
7.3.2 二叉树的遍历 135
7.3.3 二叉树的广度优先遍历 140
7.3.4 二叉树的应用实例 140
7.3.5 递归与非递归的转换 141
7.4 “爱心帮扶”调研项目的二叉树存储结构 143
7.4.1 完全二叉树的顺序存储 143
7.4.2 一般二叉树的顺序存储 144
7.4.3 二叉树的链式存储表示 145
7.5 “爱心帮扶”调研项目的二叉树遍历方法优化 147
7.5.1 线索二叉树的定义 148
7.5.2 线索二叉树中的结点结构 149
7.5.3 线索二叉树的分类 150
7.5.4 线索二叉树的应用示例 152
7.6 “爱心帮扶”调研项目中通信联络效率化 153
7.6.1 赫夫曼树的定义 154
7.6.2 等长二进制编码 154
7.6.3 赫夫曼树的基本思想 155
7.6.4 赫夫曼树的构建步骤 155
7.6.5 赫夫曼编码 159
7.7 本章小结 161
习题 162
第8章 图结构 163
8.1 为“村村通”项目村子间的道路连通关系构建逻辑结构图 164
8.1.1 图的定义 164
8.1.2 图的种类 165
8.1.3 图的术语 169
8.1.4 构建逻辑结构的步骤 173
8.1.5 确定操作 175
8.2 为“村村通”项目的逻辑结构图设计存储结构 177
8.2.1 邻接矩阵存储法 178
8.2.2 邻接表存储法 187
8.2.3 十字链表法 195
8.3 用少花费为“村村通”项目修建公路 197
8.3.1 小生成树的定义 197
8.3.2 小生成树的构建 198
8.3.3 小生成树的实现 207
8.4 安排“村村通”项目各项修路工程活动顺利完工的顺序 211
8.4.1 拓扑排序 211
8.4.2 拓扑排序思想 213
8.4.3 拓扑排序实现 214
8.5 确定“村村通”项目修路工程短工期及关键工程活动 217
8.5.1 关键路径 217
8.5.2 关键路径的思想 220
8.5.3 关键路径的实现 224
8.6 完成“村村通”项目到每个村子帮助农民运送土特产任务 228
8.6.1 图的遍历 229
8.6.2 深度优先遍历 230
8.6.3 广度优先遍历 236
8.7 为“村村通”项目设计村子间导航服务 242
8.7.1 短路径 242
8.7.2 短路径的思想 243
8.7.3 短路径的实现 256
8.8 本章小结 259
习题 261
第9章 查找 262
9.1 “无人超市”项目的理论知识支撑 264
9.1.1 查找的定义 264
9.1.2 查找的分类 266
9.1.3 查找的术语 267
9.1.4 算法复杂度 270
9.2 “无人超市”项目中使用顺序查找寻找商品 271
9.2.1 顺序查找的定义 271
9.2.2 顺序查找的实现 272
9.2.3 顺序查找的优化与性能分析 274
9.3 “无人超市”项目中使用折半查找寻找商品 275
9.3.1 折半查找的定义 276
9.3.2 折半查找的实现 276
9.3.3 折半查找的性能分析 279
9.4 “无人超市”项目中使用斐波那契查找寻找商品 280
9.4.1 斐波那契数列 280
9.4.2 算法描述 282
9.4.3 算法实现和性能分析 283
9.5 “无人超市”项目中使用索引查找寻找商品 285
9.5.1 算法描述 285
9.5.2 算法的实现与分析 287
9.6 “无人超市”项目中使用哈希查找实现商品上架 290
9.6.1 哈希表和哈希函数 290
9.6.2 哈希冲突的解决 292
9.6.3 算法描述 293
9.7 “无人超市”项目中使用树表查找实现商品上架 297
9.7.1 二叉查找树 298
9.7.2 平衡二叉树 298
9.7.3 二叉查找树的算法实现 299
9.8 本章小结 301
习题 302
第10章 排序 303
10.1 电子商务网站项目的理论知识支撑 305
10.1.1 排序的定义 305
10.1.2 排序的术语 306
10.2 电子商务网站中使用冒泡排序实现商品排序 306
10.2.1 算法描述 307
10.2.2 算法实现 309
10.2.3 算法优化 309
10.2.4 算法分析 313
10.3 电子商务网站中使用选择排序实现商品排序 314
10.3.1 算法描述 315
10.3.2 算法实现 315
10.3.3 算法分析 317
10.4 电子商务网站中使用直接插入排序实现商品排序 317
10.4.1 算法描述 318
10.4.2 算法实现 319
10.4.3 算法分析 320
10.5 电子商务网站中使用希尔排序实现商品排序 321
10.5.1 算法描述 321
10.5.2 算法实现 323
10.5.3 算法分析 324
10.6 电子商务网站中使用归并排序实现商品排序 325
10.6.1 算法描述 325
10.6.2 算法实现 326
10.6.3 算法分析 330
10.7 电子商务网站中使用快速排序实现商品排序 330
10.7.1 算法描述 331
10.7.2 算法实现 332
10.7.3 算法分析 333
10.8 电子商务网站中使用堆排序实现商品排序 333
10.8.1 堆排序算法描述 334
10.8.2 算法实现 336
10.8.3 算法分析 338
10.9 本章小结 338
习题 339
参考文献 340
附录 中英文专业词汇 341
|
|