图书介绍
算法之美 隐匿在数据结构背后的原理 C++版PDF|Epub|txt|kindle电子书版本网盘下载
- 左飞著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121277184
- 出版时间:2016
- 标注页数:412页
- 文件大小:175MB
- 文件页数:428页
- 主题词:数据结构-程序设计;C语言-程序设计
PDF下载
下载说明
算法之美 隐匿在数据结构背后的原理 C++版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 从数据到算法1
1.1 数据与数据结构1
1.1.1 数据及其类型1
1.1.2 数据结构简介3
1.2 算法5
1.2.1 算法的概念5
1.2.2 算法的分析8
1.2.3 算法的设计12
1.3 C++中的STL18
1.3.1 STL简介19
1.3.2 STL构成20
1.3.3 STL的不同版本22
本章参考文献23
第2章 指针与数组——也谈中国古代兵制24
2.1 指针24
2.1.1 内存与地址24
2.1.2 指针的语法27
2.1.3 使用指针变量29
2.1.4 数与参数传递31
2.2 数组36
2.2.1 结构型数据类型37
2.2.2 数组定义与初始化37
2.2.3 数组与指针41
2.2.4 数组的抽象数据类型45
2.3 数组应用举例48
2.3.1 Z字形编排问题48
2.3.2 大整数乘法问题51
2.3.3 九宫格问题52
2.4 动态内存管理53
2.4.1 关键词new和delete53
2.4.2 避免内存错误56
本章参考文献61
第3章 字符串与模式匹配——梦里寻她千百度62
3.1 基本概念与定义62
3.1.1 C++中的字符串62
3.1.2 字符串抽象数据类型65
3.2 文本的精确匹配66
3.2.1 BF算法66
3.2.2 MP算法67
3.2.3 KMP算法72
3.2.4 BM算法75
3.2.5 BMH算法81
3.3 文本的模糊匹配83
3.3.1 全局编辑距离83
3.3.2 局部最佳对准86
3.3.3 N元距离模型87
3.3.4 语音编码模型88
本章参考文献89
第4章 链表——老鹰捉小鸡91
4.1 链表的概念91
4.2 单向链表92
4.2.1 单向链表的结构92
4.2.2 单向链表的操作算法94
4.2.3 有序链表的合并算法101
4.3 单向循环链表102
4.3.1 单向循环链表的结构102
4.3.2 单向循环链表的实现103
4.3.3 约瑟夫环的问题107
4.3.4 魔术师发牌问题108
4.3.5 拉丁方阵的问题109
4.4 双向循环链表110
4.4.1 双向循环链表的结构110
4.4.2 双向循环链表的实现111
4.4.3 维吉尼亚加密法问题115
4.5 游标类的设计与实现117
4.5.1 游标类的结构117
4.5.2 游标类的实现118
4.6 STL与链表122
4.6.1 STL中链表类的接口122
4.6.2 遍历124
4.6.3 元素的插入与删除125
本章参考文献126
第5章 先进先出与后进先出——简单而深刻127
5.1 摞盘子的策略127
5.1.1 栈的结构127
5.1.2 栈的操作及实现129
5.1.3 括号匹配问题132
5.1.4 停车场模拟问题133
5.2 排队的智慧136
5.2.1 队列的结构136
5.2.2 队列的操作及实现138
5.2.3 舞伴问题142
5.2.4 杨辉三角问题143
5.2.5 游程编码问题145
5.3 优先级队列——兼谈页面置换算法146
5.3.1 优先级队列的结构146
5.3.2 优先级队列的实现149
5.4 STL中的栈与队列150
5.4.1 STL中的stack151
5.4.2 STL中的queue153
5.4.3 STL中的priority queue155
本章参考文献158
第6章 递归——老和尚讲故事159
6.1 递归的概念159
6.1.1 定义159
6.1.2 应用递归的原则162
6.1.3 递归和非递归的转化168
6.2 分治法170
6.2.1 分治法简述171
6.2.2 汉诺塔问题172
6.2.3 传染病问题174
6.3 回溯法176
6.3.1 回溯法简述176
6.3.2 迷宫问题176
6.3.3 八皇后问题180
本章参考文献183
第7章 树——从红楼梦说起184
7.1 认识树这种结构184
7.1.1 基本定义184
7.1.2 一些术语186
7.1.3 树的抽象187
7.2 花开二枝分外香——二叉树及相关算法188
7.2.1 二叉树的定义188
7.2.2 二叉树的性质190
7.2.3 二叉树的实现191
7.2.4 二叉树的遍历算法196
7.2.5 二叉树线索化算法200
7.3 合抱之木,生于毫末——从树到森林203
7.3.1 树的存储表示203
7.3.2 树的实现206
7.3.3 树与森林的遍历算法209
7.3.4 森林与二叉树的转换211
7.4 哈夫曼树——最优二叉树编码算法213
7.4.1 哈夫曼编码213
7.4.2 构造哈夫曼树215
7.4.3 哈夫曼编码的实现216
7.5 堆220
7.5.1 堆的概念220
7.5.2 堆的建立221
7.5.3 堆的操作223
7.6 基于STL实现树结构224
7.6.1 STL中的vector224
7.6.2 STL中的map228
本章参考文献230
第8章 图——始于哥尼斯堡的七桥问题231
8.1 图的基本概念231
8.1.1 图的定义231
8.1.2 图的术语232
8.1.3 图的运算236
8.1.4 图的抽象数据类型237
8.2 图的存储与表示239
8.2.1 图的邻接矩阵表示239
8.2.2 图的邻接表表示241
8.2.3 两种表示法的比较243
8.3 图的遍历244
8.3.1 欧拉路径与欧拉回路244
8.3.2 哈密尔顿路径与哈密尔顿回路248
8.3.3 广度优先遍历算法252
8.3.4 深度优先遍历算法254
8.4 最短路径问题258
8.4.1 固定起点最短路径问题258
8.4.2 非固定起点最短路径问题264
8.4.3 最短路径的动态规划解法266
8.5 最小生成树273
8.5.1 最小生成树的定义273
8.5.2 克鲁斯卡尔算法275
8.5.3 普里姆算法279
本章参考文献283
第9章 树形搜索结构——做一名出色的园艺师284
9.1 二叉搜索树284
9.1.1 二叉搜索树的概念284
9.1.2 二叉搜索树的操作285
9.1.3 二叉搜索树的实现288
9.1.4 二叉搜索树的分析291
9.2 自平衡的二叉搜索树——AVL树294
9.2.1 AVL树的概念294
9.2.2 AVL树的旋转295
9.2.3 AVL树的实现299
9.3 树中亦有“红与黑”303
9.3.1 红黑树的概念303
9.3.2 红黑树的操作306
9.3.3 红黑树的实现314
9.4 基于Trie树的单词检索314
9.4.1 Trie树的概念315
9.4.2 Trie树的表示316
9.4.3 Trie树的实现317
本章参考文献320
第10章 集合与字典——再言搜索之话题321
10.1 集合论基础321
10.1.1 集合的概念321
10.1.2 集合的运算323
10.2 集合的实现325
10.2.1 位向量集合325
10.2.2 单链表集合330
10.3 字典337
10.3.1 字典的概念338
10.3.2 搜索运算342
10.4 散列346
10.4.1 散列的概念347
10.4.2 散列函数348
10.4.3 字符串散列351
10.4.4 处理散列冲突353
10.5 拼写检查问题358
10.6 不相交集363
10.6.1 不相交集的概念363
10.6.2 不相交集的实现366
10.6.3 犯罪团伙的问题369
10.6.4 路径压缩的实现370
10.7 STL中的set371
本章参考文献374
第11章 排序——有序让世界更美好375
11.1 排序问题概述375
11.1.1 基本概念和定义375
11.1.2 排序算法的分类376
11.1.3 排序算法的分析377
11.2 插入排序378
11.2.1 直接插入排序378
11.2.2 二分插入排序380
11.2.3 希尔排序382
11.3 选择排序384
11.3.1 直接选择排序384
11.3.2 堆排序386
11.4 交换排序390
11.4.1 冒泡排序390
11.4.2 鸡尾酒排序392
11.4.3 快速排序395
11.5 归并排序399
11.6 计数排序403
本章参考文献407
附录 经典求职面试题目408