数据结构与算法(C语言篇)

数据结构 算法
分享 推荐 3 收藏 50 阅读 6.5K
千锋教育 (作者) 978-7-115-54484-1

关于本书的内容有任何问题,请联系 李召

1.作者团队强大,千锋教育在目前的培训市场上有一定用户群。
2.读者学习途径多样:本书配有视频资源。
3.知识实用:书中内容适度够用,语言简练,相较于其他教材,读者学起来要简单易懂。
4.全方位的服务资源:作者针对教师、学生的不同需求提供多方面服务。

内容摘要

本书面向初学者,采用通俗易懂的语言对数据结构以及基础的算法进行了讲解。全书程序操作均以C语言实现。
本书共9章,包括数据结构与算法概述、线性表、栈与队列、树、图、查找与排序、经典算法、数学算法以及综合项目——企业员工管理系统。本书以实用、高效为标准,合理选取数据结构的必备知识,并对选取的内容做了细致化讲解,内容精练易懂,旨在帮助读者快速入门,掌握数据结构的基本操作。读者学习本书不仅可以提高对数据的处理能力,而且可以深入地理解Linux内核中的各种机制。
本书适合作为高等院校计算机科学与技术、电子商务等专业的教材,也可作为行业初学者的参考用书。
本书适合作为高等院校计算机科学与技术、信息管理与应用、电子商务等专业的教材,也可作为行业初学者的参考用书。

诚邀您加入【人邮社数据结构教师交流群】

目录

第1章 数据结构与算法概述 1

1.1 数据结构的概念 1
1.1.1 数据 1
1.1.2 数据元素与数据项 2
1.1.3 数据对象 2
1.1.4 数据结构 2
1.2 逻辑结构与物理结构 2
1.2.1 逻辑结构 2
1.2.2 物理结构 3
1.3 算法的概念 4
1.3.1 算法的描述 5
1.3.2 算法的特性 5
1.3.3 算法的设计要求 7
1.3.4 算法效率的度量方法 8
1.3.5 算法的时间复杂度 9
1.3.6 算法的空间复杂度 10
1.4 本章小结 11
1.5 习题 12

第2章 线性表 13

2.1 线性表的概念 13
2.1.1 线性表的定义 13
2.1.2 线性表的运算 14
2.2 线性表的顺序存储 14
2.2.1 顺序表的定义 14
2.2.2 顺序表的创建 15
2.2.3 插入数据结点 16
2.2.4 删除数据结点 20
2.2.5 其他操作 24
2.2.6 顺序表总结 30
2.3 线性表的链式存储 30
2.3.1 单链表的定义 30
2.3.2 单链表的创建 31
2.3.3 插入数据结点 32
2.3.4 删除数据结点 39
2.3.5 其他操作 43
2.4 单向循环链表 50
2.4.1 单向循环链表的定义 50
2.4.2 单向循环链表的创建 51
2.4.3 插入数据与显示数据 52
2.5 双向循环链表 54
2.5.1 双向循环链表的定义 54
2.5.2 双向循环链表的创建 54
2.5.3 插入与删除数据结点 55
2.6 本章小结 60
2.7 习题 60

第3章 栈与队列 62

3.1 栈的概念 62
3.1.1 栈的定义 62
3.1.2 栈的运算 63
3.2 栈的顺序存储 63
3.2.1 顺序栈的定义 63
3.2.2 顺序栈的创建 63
3.2.3 入栈 64
3.2.4 出栈 65
3.2.5 显示结点数据 66
3.2.6 整体测试 66
3.3 栈的链式存储 68
3.3.1 链式栈的定义 68
3.3.2 链式栈的创建 69
3.3.3 入栈 70
3.3.4 出栈 70
3.3.5 显示结点数据 71
3.3.6 整体测试 71
3.4 队列的概念 73
3.4.1 队列的定义 73
3.4.2 队列的运算 74
3.5 队列的顺序存储 74
3.5.1 顺序队列的定义 74
3.5.2 顺序队列的创建 75
3.5.3 入队 75
3.5.4 出队 77
3.5.5 整体测试 78
3.6 队列的链式存储 80
3.6.1 链式队列的定义 80
3.6.2 链式队列的创建 81
3.6.3 入队 82
3.6.4 出队 82
3.6.5 整体测试 83
3.7 本章小结 85
3.8 习题 85

第4章 树 87

4.1 树的基本概念 87
4.1.1 树的定义 87
4.1.2 树的基本术语 88
4.2 二叉树 89
4.2.1 二叉树的概念 89
4.2.2 满二叉树 89
4.2.3 完全二叉树 90
4.2.4 二叉树的性质 90
4.2.5 二叉树的存储 91
4.2.6 二叉树的遍历方式 92
4.3 二叉树的遍历实现 93
4.3.1 二叉树的定义 93
4.3.2 二叉树的创建 93
4.3.3 二叉树的遍历 96
4.3.4 整体测试 99
4.4 赫夫曼树 104
4.4.1 赫夫曼树的概念 104
4.4.2 赫夫曼树的原理 105
4.4.3 构造赫夫曼树 106
4.5 特殊的树 108
4.5.1 二叉排序树 108
4.5.2 平衡二叉树 109
4.5.3 B树 111
4.5.4 B+树与B*树 114
4.5.5 红黑树 116
4.6 本章小结 120
4.7 习题 120

第5章 图 122

5.1 图的基本概念 122
5.1.1 图的定义 122
5.1.2 图的基本术语 123
5.2 图的存储 124
5.2.1 邻接矩阵 125
5.2.2 邻接表 126
5.2.3 十字链表 127
5.2.4 邻接多重表 128
5.3 图的创建 129
5.3.1 定义图形结构 129
5.3.2 创建图形结构 130
5.3.3 确定顶点关系 130
5.3.4 输出顶点关系 131
5.3.5 整体测试 131
5.4 图的遍历 133
5.4.1 深度优先搜索 133
5.4.2 广度优先搜索 138
5.4.3 最短路径 144
5.5 本章小结 147
5.6 习题 147

第6章 查找与排序 149

6.1 查找 149
6.1.1 顺序查找 149
6.1.2 折半查找 151
6.1.3 分块查找 152
6.1.4 哈希查找 156
6.2 排序 160
6.2.1 排序的概念 160
6.2.2 直接插入排序 161
6.2.3 希尔排序 164
6.2.4 直接选择排序 167
6.2.5 堆排序 169
6.2.6 冒泡排序 174
6.2.7 快速排序 176
6.2.8 归并排序 181
6.3 本章小结 185
6.4 习题 185

第7章 经典算法 187

7.1 约瑟夫问题 187
7.1.1 算法概述 187
7.1.2 算法实现 188
7.2 球钟问题 195
7.2.1 算法概述 195
7.2.2 算法实现 196
7.3 八皇后问题 201
7.3.1 算法概述 201
7.3.2 算法实现 202
7.4 背包问题 204
7.4.1 算法概述 204
7.4.2 算法实现 205
7.5 地图着色问题 208
7.5.1 算法概述 208
7.5.2 算法实现 209
7.6 旅行商问题 215
7.6.1 算法概述 215
7.6.2 算法实现 216
7.7 本章小结 219
7.8 习题 219

第8章 数学算法 220

8.1 分解质因数 220
8.1.1 算法概述 220
8.1.2 算法实现 221
8.2 最大公约数与最小公倍数 222
8.2.1 算法概述 222
8.2.2 算法实现 223
8.3 数字全排列 224
8.3.1 算法概述 224
8.3.2 算法实现 225
8.4 杨辉三角 226
8.4.1 算法概述 226
8.4.2 算法实现 227
8.5 进制转换 228
8.5.1 算法概述 228
8.5.2 算法实现 228
8.6 尼科彻斯定理 235
8.6.1 算法概述 235
8.6.2 算法实现 235
8.7 分数计算器 237
8.7.1 算法概述 237
8.7.2 算法实现 237
8.8 勾股数组 241
8.8.1 算法概述 241
8.8.2 算法实现 241
8.9 本章小结 243
8.10 习题 243

第9章 综合项目—企业员工管理系统 244

9.1 项目概述 244
9.1.1 开发背景 244
9.1.2 项目需求分析 245
9.1.3 环境使用说明 246
9.1.4 项目技术拓展 246
9.1.5 系统软件设计 249
9.2 项目案例实现 252
9.2.1 全局变量的定义 252
9.2.2 功能代码设计 253
9.2.3 系统展示 273
9.3 本章小结 276
9.4 习题 276

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

1.千锋教育采用全程面授高品质、高成本培养模式,教学大纲紧跟企业需求,拥有全国一体化就业保障服务,成为学员信赖的IT职业教育品牌。 2.获得荣誉包括:中关村移动互联网产业联盟副理事长单位、中国软件协会教育培训委员会认证一级培训机构、中关村国际孵化软件协会授权中关村移动互联网学院、教育部教育管理信息中心指定移动互联网实训基地等。

推荐用户

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部