您好,欢迎来到聚文网。 登录 免费注册
数据结构与算法设计

数据结构与算法设计

  • 字数: 672000
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 出版日期: 2023-01-01
  • 商品条码: 9787121449789
  • 版次: 1
  • 开本: 16开
  • 页数: 400
  • 出版年份: 2023
定价:¥79.8 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
数据结构与算法设计相关课程是计算机专业教学中的核心课程,也是各类程序设计竞赛及互联网公司与软件企业招聘考查的重要方面。本书按照“数据结构―算法设计”的路线系统地介绍数据结构与算法设计的主要内容。其中,数据结构部分包括线性表、栈、队列、字符串、数组、广义表、树和图,以及两种常用的数据操作――查找和排序;算法设计部分包括递归与分治法、动态规划、贪心法、回溯法和分支限界法;最后以“快递超市信息管理系统”作为案例介绍面向实际应用开展分析、设计、编码与测试的完整过程。 本书融入了思政元素,注重培养学习者解决问题的思维能力,拥有丰富且形式多样的习题,能够同时满足数据结构与算法设计的教学和学习需求。 本书可以作为高等院校计算机科学与技术、软件工程、信息安全、智能科学与技术、物联网工程等计算机相关专业的本科生教材,也可以作为从事计算机应用开发的工程技术人员的参考用书。
目录
第1章 绪论 1
1.1 数据结构的研究内容 1
1.2 数据结构的概念 4
1.2.1 基本术语 4
1.2.2 数据结构的三个要素 5
1.3 算法的定义和评价 7
1.3.1 算法的定义 7
1.3.2 算法的评价 7
1.4 算法性能分析 8
1.4.1 算法的时间复杂度分析 8
1.4.2 算法的空间复杂度分析 11
1.5 算法的设计与描述 11
1.5.1 算法设计的一般步骤 11
1.5.2 算法设计的基本策略 12
1.5.3 算法的描述 13
1.6 本章小结 14
习题一 15
第2章 线性表 18
2.1 线性表的定义及基本操作 18
2.2 线性表的顺序表示和实现 19
2.2.1 顺序表的定义 19
2.2.2 顺序表的类模板定义 20
2.2.3 顺序表基本操作的实现 20
2.3 线性表的链式表示和实现 25
2.3.1 单链表 25
2.3.2 单循环链表 32
2.3.3 双向循环链表 33
2.3.4 静态链表 37
2.4 线性表的应用 41
2.5 本章小结 45
习题二 46
第3章 栈和队列 49
3.1 栈 50
3.1.1 栈的定义 50
3.1.2 顺序栈 51
3.1.3 链栈 54
3.2 栈的应用 58
3.3 队列 65
3.3.1 队列的定义 66
3.3.2 循环队列 66
3.3.3 链队列 72
3.4 队列的应用 76
3.5 本章小结 82
习题三 82
第4章 字符串、数组和广义表 86
4.1 字符串 87
4.1.1 字符串的定义 87
4.1.2 C++字符串操作 88
4.1.3 模式匹配 88
4.2 数组 93
4.2.1 数组的定义 93
4.2.2 数组的顺序存储结构 93
4.3 特殊矩阵的压缩存储 95
4.3.1 对称矩阵和三角矩阵 95
4.3.2 带状矩阵 96
4.3.3 稀疏矩阵 97
4.4 广义表 101
4.5 本章小结 101
习题四 102
第5章 树 105
5.1 树的定义与术语 106
5.1.1 树的定义 106
5.1.2 树的术语 107
5.1.3 树的表示方法 107
5.1.4 树的基本操作 108
5.2 二叉树 108
5.2.1 二叉树的定义 108
5.2.2 二叉树的性质 109
5.2.3 二叉树的基本操作 110
5.3 二叉树的存储结构 111
5.3.1 二叉树的顺序存储结构 111
5.3.2 二叉树的链式存储结构 112
5.3.3 二叉树的二叉链表类模板定义 112
5.4 二叉树的遍历 115
5.4.1 先序遍历 116
5.4.2 中序遍历 116
5.4.3 后序遍历 117
5.4.4 层次遍历 117
5.4.5 基于遍历的操作 118
5.5 线索二叉树 121
5.5.1 线索二叉树的定义 121
5.5.2 中序线索二叉树类模板定义 122
5.6 二叉树的应用 126
5.6.1 堆 127
5.6.2 哈夫曼树 133
5.7 树和森林 136
5.7.1 树的存储结构 136
5.7.2 树、森林和二叉树的转换 138
5.7.3 树的遍历 141
5.7.4 森林的遍历 141
5.8 本章小结 142
习题五 142
第6章 图 146
6.1 图的定义与术语 146
6.1.1 图的定义 146
6.1.2 图的术语 147
6.1.3 图的基本操作 149
6.2 图的存储结构 149
6.2.1 邻接矩阵 150
6.2.2 邻接表 156
6.2.3 邻接多重表 164
6.2.4 十字链表 165
6.3 图的遍历 166
6.3.1 深度优先遍历 166
6.3.2 广度优先遍历 168
6.4 图的应用 170
6.4.1 最小生成树 170
6.4.2 最短路径 173
6.4.3 活动网络 177
6.5 本章小结 184
习题六 185
第7章 查找 189
7.1 查找的基本概念 189
7.2 线性表的查找 191
7.2.1 顺序查找 191
7.2.2 折半查找 193
7.2.3 索引查找 195
7.3 树表查找 198
7.3.1 二叉排序树 198
7.3.2 平衡二叉树 206
7.3.3 B-树与B+树 213
7.4 散列查找 218
7.4.1 散列表的概念 218
7.4.2 散列函数的构造方法 219
7.4.3 解决冲突的方法 222
7.4.4 散列查找及其性能分析 224
7.5 本章小结 227
习题七 228
第8章 排序 231
8.1 排序的基础知识 232
8.2 交换排序 233
8.2.1 冒泡排序 233
8.2.2 快速排序 235
8.3 插入排序 237
8.3.1 直接插入排序 237
8.3.2 折半插入排序 239
8.3.3 希尔排序 240
8.4 选择排序 241
8.4.1 简单选择排序 242
8.4.2 堆排序 243
8.5 归并排序 245
8.5.1 两路归并算法 245
8.5.2 两路归并排序 247
8.6 基数排序 248
8.6.1 多关键字排序 248
8.6.2 链式基数排序 249
8.7 排序方法的比较 252
8.8 本章小结 253
习题八 253
第9章 递归与分治法 256
9.1 递归程序设计 256
9.1.1 递归的定义 256
9.1.2 递归的适用条件 257
9.1.3 递归的程序设计 259
9.1.4 递归的优缺点 264
9.2 分治法 265
9.2.1 分治法的基本思想 265
9.2.2 分治法的适用条件 266
9.2.3 分治法的设计步骤 266
9.3 分治法的应用实例 267
9.3.1 选择问题 267
9.3.2 排序问题 272
9.3.3 大整数的乘法 273
9.3.4 Strassen矩阵乘法 276
9.3.5 棋盘覆盖问题 278
9.3.6 循环赛日程安排 281
9.4 本章小结 284
习题九 284
第10章 动态规划 286
10.1 动态规划概述 286
10.1.1 动态规划的基本思想 286
10.1.2 动态规划的适用条件 287
10.1.3 动态规划的设计步骤 289
10.2 动态规划的应用实例 291
10.2.1 矩阵连乘问题 291
10.2.2 投资问题 295
10.2.3 0-1背包问题 299
10.2.4 最长公共子序列问题 303
10.3 本章小结 308
习题十 308
第11章 贪心法 310
11.1 贪心法概述 310
11.1.1 贪心法的基本思想 310
11.1.2 贪心法的适用条件 311
11.1.3 贪心法和动态规划的区别 312
11.1.4 贪心法的设计算法的步骤 312
11.1.5 贪心算法的正确性证明 313
11.2 贪心法的应用实例 313
11.2.1 活动安排问题 313
11.2.2 很优装载问题 316
11.2.3 背包问题 318
11.3 本章小结 321
习题十一 321
第12章 回溯法 323
12.1 回溯法概述 323
12.1.1 问题的解空间 323
12.1.2 回溯法的基本思想 325
12.1.3 回溯法的设计步骤与算法框架 327
12.1.4 子集树与排列树 328
12.1.5 回溯法的适用条件 330
12.2 回溯法的应用实例 331
12.2.1 0-1背包问题 331
12.2.2 装载问题 335
12.2.3 n皇后问题 339
12.2.4 旅行商问题 342
12.3 本章小结 346
习题十二 346
第13章 分支限界法 348
13.1 分支限界法概述 348
13.1.1 分支限界法的基本思想 348
13.1.2 分支限界法的三个关键问题 349
……

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网