《多任务下的数据结构与算法》一书的目录

目录
1 绪论 ...................................................................................................................................... (1)
1.1 引言 ... (1 )
1.2 C 语言编程常见问题分析 ... (2 )
1.2.1   参数校验问题 ... (3 )
1.2.2  return 语句的问题 ... (3 )
1.2.3  while 循环和 for 循环的问题 ... (4 )
1.2.4 if语句的多个判断问题 ... (4 )
1.2.5  goto 语句问题 ... (5 )
1.2.6  switch …case if … else if 的效率区别 ... (5 )
1.3  任意数据类型处理 ... (7 )
1.3.1   任意数据类型处理的设计方法 ... (7 )
1.3.2   任意数据类型处理的实例 ... (8 )
1.3.3   任意数据类型处理的回调函数封装 ... (9 )
1.4  多任务介绍 ... (10 )
1.4.1   多任务简介 ... (10 )
1.4.2   锁的概念 ... (10 )
1.4.3  Windows 下常用多任务操作函数 ... (10 )
1.4.4 Linux/Unix下常用多任务操作函数 ... (12 )
1.4.5  VxWorks 下常用多任务操作函数 ... (12 )
1.4.6   多任务函数的封装 ... (13 )
1.5  软件设计简介 ... (14 )
1.5.1   软件设计历史简述 ... (14 )
1.5.2   微观设计学原理简介 ... (15 )
2 数组 .................................................................................................................................... (17)
2.1  ... (17 )
2.1.1   栈的基本概念 ... (17 )
2.1.2   栈的编码实现 ... (18 )
2.1.3   多任务栈的实现 ... (21 )
2.2  队列 ... (24 )
2.2.1   队列的基本概念和接口 ... (24 )
2.2.2 环形队列(Queue) (25 )
2.2.3  STL 中的动态队列 (STL deque) (29 )
2.2.4   动态环形队列 ... (30 )
2.2.5 各种队列的时间效率测试及分析 ... (35 )
2.2.6   各种队列的适用范围 ... (36 )
2.2.7 关于时间效率和空间效率的原则 ... (36 )
2.3  排序表 ... (37 )
2.3.1   排序算法介绍 ... (37 )
2.3.2   快速排序算法 ... (38 )
2.3.3   排序表的设计 ... (40 )
2.3.4   非递归的快速排序算法 ... (43 )
2.3.5   快速排序算法的复杂度分析 ... (47 )
2.3.6   二分查找算法 ... (48 )
2.4  实例 HOOK 管理功能的实现 ... (49 )
2.4.1   单个函数的 HOOK 实现 ... (49 )
2.4.2   多个函数的 HOOK 实现 ... (50 )
2.4.3  HOOK 功能的应用简介 ... (55 )
2.4.4  HOOK 使用的注意事项 ... (56 )
本章小结 ... (56 )
习题与思考 ... (56 )
3 链表 ..................................................................................................................................... (57)
3.1 单向链表 ... (57 )
3.1.1 单向链表的存储表示 ... (57 )
3.1.2 单向链表的接口设计 ... (59 )
3.1.3 单向链表的基本功能编码实现 ... (60 )
3.2 单向链表的逐个节点遍历 ... (69 )
3.2.1 单向链表逐个节点遍历基本概念 ... (69 )
3.2.2 单向链表逐个节点遍历编码实现 ... (70 )
3.3 单向链表的排序 ... (71 )
3.3.1 插入排序 ... (71 )
3.3.2 归并插入排序 ... (74 )
3.3.3 基数排序 ... (79 )
3.4 双向链表 ... (85 )
3.4.1 双向链表的基本概念 ... (85 )
3.4.2 双向链表的设计 ... (85 )
3.4.3 双向链表的编码实现 ... (86 )
3.5 使用整块内存的链表 ... (107 )
3.5.1 整块内存链表的基本概念 ... (107 )
3.5.2 整块内存链表的编码实现 ... (109 )
3.6 实例:使用链表管理短信息系统的CACHE . (113 )
3.6.1 短信息系统的CACHE管理基本概念 ... (113 )
3.6.2 短信息系统的发送和接收分析 ... (114 )
3.6.3 短信息系统CACHE管理的编码实现 ... (115 )
本章小结 ... (118 )
习题与思考 ... (118 )
4 哈希表 ................................................................................................................................ (119)
4.1 哈希表 ... (119 )
4.1.1 哈希表的基本概念 ... (119 )
4.1.2 哈希表的索引方法 ... (120 )
4.1.3 哈希表的冲突解决方法 ... (123 )
4.1.4 哈希表基本操作的源代码 ... (125 )
4.2 哈希链表 ... (130 )
4.2.1 哈希表和数组、链表的效率比较 ... (130 )
4.2.2 时间效率和空间效率的关系 ... (131 )
4.2.3 哈希链表的基本概念 ... (132 )
4.2.4 哈希链表的操作 ... (133 )
4.2.5 哈希链表的编码实现 ... (135 )
4.3 实例:WebServer的动态CACHE文件管理 ... (143 )
4.3.1 WebServer的动态CACHE文件管理基本概念 ... (143 )
4.3.2 CACHE文件管理功能的设计 ... (144 )
4.3.3 CACHE文件管理功能的编码实现 ... (145 )
本章小结 ... (151 )
习题与思考 ... (151 )
5 树 ................................................................................................................. (153)
5.1 普通树 ... (153 )
5.1.1 普通树的描述方法 ... (153 )
5.1.2 树的操作接口设计 ... (154 )
5.1.3 树的遍历算法 ... (154 )
5.1.4 树的编码实现 ... (157 )
5.1.5 使用树的遍历算法来实现Xcopy功能 ... (163 )
5.2 二叉树 ... (166 )
5.2.1 二叉树的基本概念 ... (166 )
5.2.2 二叉树的树梢及二叉树的高度 ... (166 )
5.2.3 二叉树的描述方法 ... (167 )
5.3 二叉排序树 ... (168 )
5.3.1 二叉排序树的基本概念 ... (168 )
5.3.2 二叉排序树的查找 ... (168 )
5.3.3 二叉排序树的插入 ... (170 )
5.3.4 二叉排序树的删除 ... (172 )
5.3.5 二叉排序树的遍历 ... (176 )
5.3.6 二叉排序树的旋转操作 ... (178 )
5.4 AVL搜索树 ... (181 )
5.4.1 AVL搜索树的基本概念 ... (181 )
5.4.2 AVL搜索树的插入 ... (181 )
5.4.3 AVL搜索树的删除 ... (184 )
5.4.4 AVL树的源代码 ... (187 )
5.5 红黑树 ... (205 )
5.5.1 红黑树的基本概念 ... (205 )
5.5.2 红黑树的插入操作 ... (206 )
5.5.3 红黑树的删除操作 ... (209 )
5.5.4 红黑树的编码实现 ... (214 )
5.6 实例:搜索引擎的实现 ... (236 )
5.6.1 搜索引擎的实现思路和方法 ... (236 )
5.6.2 搜索引擎的时间效率和空间效率分析 ... (238 )
5.6.3 高级搜索的实现 ... (240 )
本章小结 ... (241 )
习题与思考 ... (241 )
6 复合二叉树 .................................................................................................... (243)
6.1 哈希红黑树 ... (243 )
6.1.1 哈希红黑树的基本概念 ... (243 )
6.1.2 哈希红黑树的查找 ... (245 )
6.1.3 哈希红黑树的插入 ... (246 )
6.1.4 哈希红黑树的删除 ... (248 )
6.1.5 哈希红黑树的释放 ... (248 )
6.1.6 哈希红黑树的遍历 ... (249 )
6.1.7 哈希红黑树的编码实现 ... (249 )
6.1.8 哈希红黑树的效率分析 ... (255 )
6.2 哈希AVL树 ... (256 )
6.2.1 哈希AVL树的基本概念 ... (256 )
6.2.2 哈希AVL树的查找 ... (257 )
6.2.3 哈希AVL树的插入 ... (258 )
6.2.4 哈希AVL树的删除 ... (260 )
6.2.5 哈希AVL树的释放 ... (261 )
6.2.6 哈希AVL树的遍历 ... (261 )
6.2.7 哈希AVL树的编码实现 ... (261 )
6.2.8 复合数据结构的分类 ... (266 )
6.3 抗DoS/DDoS攻击的实例 ... (267 )
6.3.1 DoS/DDoS攻击的概念 ... (267 )
6.3.2 常见DoS/DDoS攻击手段及防范策略 ... (268 )
6.3.3 抗DoS/DDoS攻击的实现 ... (269 )
6.3.4 抗DoS/DDoS攻击的编码实现 ... (269 )
本章小结 ... (272 )
习题与思考 ... (273 )
7  图 ................................................................................................................. (275)
7.1 图的基本概念和描述方法 ... (275 )
7.1.1 图的基本概念 ... (275 )
7.1.2 图的描述方法 ... (276 )
7.2 Dijkstra最短路径算法 ... (277 )
7.2.1 Dijkstra最短路径算法的描述 ... (277 )
7.2.2 Dijkstra最短路径算法的过程图解 ... (277 )
7.2.3 Dijkstra最短路径算法的编码实现 ... (278 )
7.3 最小生成树算法 ... (282 )
7.3.1 最小生成树算法的基本概念 ... (282 )
7.3.2 最小生成树算法的过程图解 ... (282 )
7.3.3 最小生成树的算法流程图 ... (283 )
7.3.4 最小生成树算法的编码实现 ... (284 )
7.4 深度优先搜索算法 ... (286 )
7.4.1 深度优先搜索算法的描述 ... (286 )
7.4.2 深度优先搜索算法的过程图解 ... (287 )
7.4.3 深度优先搜索算法的流程图 ... (288 )
7.4.4 深度优先搜索算法的编码实现 ... (289 )
7.5 宽度优先搜索算法 ... (293 )
7.5.1 宽度优先搜索算法的描述 ... (293 )
7.5.2 宽度优先搜索算法的编码实现 ... (294 )
7.6 无环有向图的分层算法 ... (297 )
7.6.1 无环有向图的分层算法描述 ... (297 )
7.6.2 无环有向图的分层算法过程图解 ... (298 )
7.7 哈密顿圈算法 ... (299 )
7.7.1 哈密顿圈算法的描述 ... (299 )
7.7.2 哈密顿圈算法的过程图解 ... (300 )
本章小结 ... (302 )
习题与思考 ... (302 )
8 多任务算法 .................................................................................................... (303)
8.1 读写锁 ... (303 )
8.1.1 读写锁概念的引出 ... (303 )
8.1.2 读写锁算法的分析和实现 ... (304 )
8.1.3 读写锁的编码实现 ... (305 )
8.2 多任务资源释放问题 ... (308 )
8.2.1 子任务释放问题 ... (308 )
8.2.2 多个子任务释放 ... (309 )
8.2.3 多任务释放的实现 ... (309 )
8.3 多任务下的遍历问题 ... (313 )
8.3.1 链表在多任务下的遍历问题 ... (313 )
8.3.2 多任务链表的设计和编码实现 ... (313 )
8.3.3 多任务链表的遍历操作编码实现 ... (318 )
8.3.4 多个任务同时遍历的情况 ... (321 )
8.4 多任务二叉树的设计 ... (322 )
8.5 消息队列 ... (327 )
8.5.1 消息队列的基本概念 ... (327 )
8.5.2 消息队列的设计和编码实现 ... (327 )
8.6 实例:线程池调度的管理 ... (331 )
8.6.1 线程池调度管理的基本概念 ... (331 )
8.6.2 线程池调度管理的编码实现 ... (332 )
本章小结 ... (335 )
习题与思考 ... (335 )
9 内存管理算法 ................................................................................................. (337)
9.1 动态等尺寸内存的分配算法 ... (337 )
9.1.1 静态等尺寸内存分配算法的分析 ... (337 )
9.1.2 动态等尺寸内存分配算法 ... (338 )
9.2 内存垃圾收集算法 ... (351 )
9.2.1 垃圾收集算法简介 ... (351 )
9.2.2 用户层垃圾回收算法的实现 ... (352 )
9.2.3 多任务下的垃圾收集 ... (360 )
9.2.4 使用垃圾回收算法来做内存泄漏检查 ... (367 )
9.3 实例:动态等尺寸内存管理算法的应用 ... (370 )
9.3.1 Emalloc内存管理的概念 ... (370 )
9.3.2 Emalloc内存管理的编码实现 ... (371 )
9.3.3 Emalloc内存管理的使用方法 ... (375 )
9.3.4 Emalloc内存管理的内存越界检查 ... (376 )
本章小结 ... (378 )
习题与思考 ... (378 )
  参考文献 ...................................................................................................... (379)

你可能感兴趣的:(数据结构,算法,cache,搜索引擎,任务,hook)