新書推薦:

《
文心雕龙义证(全四册)
》
售價:NT$
1622.0

《
国史大纲(上下册)(简体字版)
》
售價:NT$
500.0

《
长寿:逆转和延缓衰老的科学饮食(上下册)
》
售價:NT$
857.0

《
安史之乱:历史、宣传与神话(40幅插图,深度还原安史之乱重要战事)
》
售價:NT$
704.0

《
亚伯拉罕的行李:中世纪印度洋世界的饮食、日用与旅行技艺
》
售價:NT$
602.0

《
中国历代文论要略(全三册)
》
售價:NT$
714.0

《
英歌36( 国家级非遗“英歌舞” 潮阳英歌文化)
》
售價:NT$
347.0

《
汪诘经典著作 时间的形状 相对论史话
》
售價:NT$
398.0
|
編輯推薦: |
1.基于C 语言描述,更好实现数据结构
目前国内大部分数据结构教材采用 C 语言进行实现。然而,C 语言缺乏类和对象等面向对象特性,无法像C 语言那样直接通过类和对象实现数据封装。C 作为一种面向对象语言,不仅能够更好地封装数据和操作,还能提高代码的可维护性和可扩展性。因此,本书采用 C 语言进行实现。
2.优化教材内容布局,强化知识阐述逻辑
本书一是舍去了传统教材中的部分内容,如广义表、静态链表等,以及存储管理与文件系统的相关内容。二是重构、优化了树和图的相关内容。三是对部分内容的先后顺序进行了调整,优化了内容逻辑结构。
3.注重编程实践教学,侧重实际工程应用
数据结构的学习需要结合编程实践,主要理论知识需要通过编程实现来验证。本书为各主要算法提供 C 实现,针对重点数据结构和算法,还配有应用实例,并给出了全部源代码。本书充分利用了 C 标准库中的 list、vector 等标准模板库容器及算法库,更为符合现代编程的实际需求。
4.配套资源丰富齐全,助力院校教师教学
本书编者为本书配套了 PPT 课件、教案、教学大纲、习题答案、源代码、实验指导等;此外,本书还配
|
內容簡介: |
本书系统讲解了数据结构课程的核心内容,共6章。第1章介绍数据结构与算法的基本概念,第2~4章详细讲解顺序表、链表、栈、队列、树与二叉树、图等基本数据结构及其运算,第5、6章重点介绍查找与排序等算法及其应用。本书内容精练、结构清晰,理论与实践相结合,强调相关知识的工程应用,并提供大量典型例题与应用实例。前言中附有的C 基础知识学习二维码,可为学生学习算法描述和实现相关算法提供帮助。
本书可作为计算机科学与技术、软件工程、网络工程、数字媒体技术、数据科学与大数据技术、人工智能、电子信息工程、信息管理与信息系统等专业的教材,也可供计算机相关领域的技术人员参考使用。
|
關於作者: |
熊才权: 博士,三级教授,博士生导师。主要从事模型识别与智能系统、计算机应用、软件工程等方面的研究。主讲的“数据结构”课程2021年被认定为湖北省一流本科课程。主编过《软件工程》(华中科技大学出版社,2005年)、《数据库原理与应用》(华中科技大学出版社,2019年)等教材,出版学术专著一部《综合集成模型方法与工具》(科学出版社,2019年)。主持国家自然科学基金面上项目和国家重点研发计划项目子课题各一项,获武汉市科技进步三等奖1项,湖北省教学成果二等奖2项、湖北工业大学教学成果一等奖3项、二等奖1项。
|
目錄:
|
【章名目录】
第 1章 绪论
第 2章 线性结构
第3章 树与二叉树
第4章 图
第5章 查找
第6章 排序
【详细目录】
第 1章 绪论
1.1 数据结构概述 1
1.1.1 数据结构的基本概念与术语 1
1.1.2 数据的逻辑结构 2
1.1.3 数据的物理结构 4
1.2 算法与性能分析 5
1.2.1 算法的基本概念 5
1.2.2 描述算法的方法 6
1.2.3 算法设计的要求 7
1.2.4 算法效率分析 8
1.3 数据结构、算法及程序的关系 12
1.3.1 数据结构的作用 13
1.3.2 算法的作用 13
1.3.3 程序的作用 13
1.3.4 三者之间的关系 13
1.4 本章小结 14
练习题 14
第 2章 线性结构
2.1 问题导入:数组的局限性 16
2.2 顺序表 17
2.2.1 非封装的顺序表 17
2.2.2 顺序表类 23
2.2.3 顺序表类模板 29
2.2.4 模仿的向量(vector)类模板 30
2.2.5 顺序表的应用:Todo计划表 36
2.3 链表 37
2.3.1 链表的基本概念 37
2.3.2 单链表 37
2.3.3 双向链表 43
2.3.4 循环链表 44
2.3.5 模仿的链表类模板list 45
2.3.6 链表的应用:一元多项式相加 51
2.4 栈 52
2.4.1 栈的基本概念 52
2.4.2 顺序栈 53
2.4.3 以标准模板库的vector类为底层结构的顺序栈 54
2.4.4 链栈 56
2.4.5 以标准模板库的list类为底层结构的链栈 57
2.4.6 栈的应用:括号匹配 59
2.5 队列 60
2.5.1 队列的基本概念 60
2.5.2 顺序队列 60
2.5.3 以标准模板库的vector类为底层结构的顺序队列 61
2.5.4 链队列 63
2.5.5 以标准模板库的list类为底层结构的链队列 65
2.5.6 优先级队列 65
2.5.7 队列的应用:打印机模拟 65
2.6 串 66
2.6.1 串的基本概念 66
2.6.2 模仿的String类及其实现 66
2.6.3 模式匹配 70
2.6.4 串的应用:文本检索 76
2.7 多维数组与特殊矩阵 77
2.7.1 多维数组的定义 77
2.7.2 多维数组的存储方式 78
2.7.3 特殊矩阵 79
2.7.4 稀疏矩阵 81
2.8 本章小结 82
练习题 83
第3章 树与二叉树
3.1 树的基本概念 85
3.1.1 树的定义 85
3.1.2 树的基本术语 86
3.2 二叉树的基本概念 87
3.2.1 二叉树的定义 87
3.2.2 二叉树的性质 88
3.3 二叉树的存储结构 89
3.3.1 二叉树的顺序存储结构 89
3.3.2 二叉树的链式存储结构 89
3.4 二叉树遍历 92
3.4.1 二叉树遍历概述 92
3.4.2 二叉树的层次遍历 92
3.4.3 二叉树的先序、中序、后序遍历递归算法 93
3.4.4 二叉树的先序、中序、后序遍历非递归算法 94
3.4.5 二叉树遍历递归程序转换为非递归程序的一般方法 95
3.4.6 二叉树遍历的应用 97
3.5 堆 109
3.5.1 堆的基本概念 109
3.5.2 建堆 109
3.5.3 堆排序 111
3.5.4 小根堆Heap类 111
3.6 哈夫曼树与哈夫曼编码 112
3.6.1 哈夫曼树的基本概念 112
3.6.2 哈夫曼树构建 113
3.6.3 哈夫曼编码与解码 115
3.7 树与森林 117
3.7.1 树的存储与Tree类 117
3.7.2 树的遍历 121
3.7.3 树与二叉树的转换 123
3.7.4 树的应用:八数码问题 125
3.8 本章小结 127
练习题 128
第4章 图
4.1 图的基本概念 130
4.2 图的存储结构 132
4.2.1 邻接矩阵 132
4.2.2 邻接表 132
4.3 Graph类 133
4.4 图的遍历 138
4.4.1 广度优先搜索算法 138
4.4.2 深度优先搜索算法 139
4.5 最小生成树 141
4.5.1 图的生成树的基本概念 141
4.5.2 克鲁斯卡尔算法 142
4.5.3 普里姆算法 146
4.6 最短路径 148
4.6.1 单源最短路径 148
4.6.2 迪杰斯特拉算法 149
4.6.3 所有顶点之间的最短路径 152
4.7 拓扑排序与关键路径 156
4.7.1 有向无环图 156
4.7.2 拓扑排序 157
4.7.3 关键路径 158
4.8 图的应用:迷宫求解 160
4.9 本章小结 162
练习题 162
第5章 查找
5.1 查找的基本概念 166
5.2 静态查找 168
5.2.1 顺序查找 168
5.2.2 折半查找 169
5.2.3 分块查找 170
5.3 二叉搜索树 170
5.3.1 二叉搜索树的基本概念 170
5.3.2 二叉搜索树的操作 171
5.3.3 二叉树的遍历迭代器 177
5.3.4 线索二叉树 182
5.3.5 增加线索的遍历迭代器 188
5.4 平衡二叉搜索树 191
5.4.1 平衡二叉搜索树的基本概念 191
5.4.2 动态平衡调整法 192
5.4.3 平衡二叉搜索树插入节点 198
5.4.4 平衡二叉搜索树删除节点 199
5.4.5 平衡二叉搜索树的应用:词频统计 201
5.5 B-树 202
5.5.1 B-树的基本概念 202
5.5.2 B-树的查找 202
5.5.3 B-树的插入 203
5.5.4 B-树的删除 205
5.5.5 B 树 211
5.6 散列 217
5.6.1 散列的基本概念 217
5.6.2 散列函数的构造方法 218
5.6.3 处理散列冲突的方法 219
5.6.4 散列查找 223
5.7 本章小结 224
练习题 225
第6章 排序
6.1 排序的基本概念 227
6.2 插入排序 228
6.2.1 直接插入排序 228
6.2.2 折半插入排序 230
6.2.3 希尔排序 231
6.3 交换排序 233
6.3.1 冒泡排序 233
6.3.2 快速排序 235
6.4 选择排序 236
6.4.1 直接选择排序 236
6.4.2 堆排序 237
6.4.3 锦标赛排序 238
6.5 归并排序 242
6.5.1 二路归并 242
6.5.2 迭代归并排序 243
6.5.3 递归归并排序 243
6.6 基数排序 244
6.7 外排序 246
6.7.1 内排序与外排序 246
6.7.2 多路归并排序 246
6.8 排序的应用:国际大学生程序设计竞赛成绩排序 248
6.9 本章小结 249
练习题 250
参考文献
|
|