第1章 数据类型:基本的数据结构 1
1.1 数值数据类型 1
1.1.1 整型 2
1.1.2 单精度浮点类型 10
1.1.3 双精度浮点类型 12
1.1.4 货币类型 15
1.1.5 类型转换 17
1.2 布尔数据类型 20
1.2.1 运算符优先级 22
1.2.2 短路求值 22
1.3 字符串 26
1.4 小结 29
第2章 数组:基本数据集 30
2.1 可变数组与不可变数组 32
案例学习:用户登录到一个Web服务 32
2.2 高级话题 43
2.2.1 线性查找 43
2.2.2 原始数组 45
2.2.3 对象数组 46
2.2.4 混合数组 46
2.2.5 多维数组 47
2.2.6 不规则数组 49
2.3 小结 49
第3章 列表:线性数据集 50
3.1 列表的实现 51
3.1.1 数组表 52
3.1.2 链表 53
3.2 列表的实例化 53
3.3 案例回顾:用户登录到一个Web服务 55
3.3.1 泛型 59
3.3.2 案例学习:自行车路径 60
3.4 双链表 73
3.5 查找 73
3.6 一些指针 74
3.7 小结 74
第4章 栈:后入先出的数据集 75
4.1 栈的初始化 75
4.1.1 UINavigationController 76
4.1.2 栈的操作 77
4.2 案例学习:运动规划算法 77
4.3 高级话题——栈的实现 88
4.3.1 数组栈 88
4.3.2 链表栈 88
4.4 小结 89
第5章 队列:先入先出的数据集 90
5.1 队列的初始化 91
5.2 案例学习:客户服务 93
5.3 高级话题 106
5.3.1 数组队列 106
5.3.2 链表队列 106
5.3.3 堆队列 106
5.3.4 双端队列 107
5.3.5 优先级队列 107
5.4 小结 107
第6章 字典:关键字数据集 108
6.1 字典的初始化 109
6.2 案例学习:游戏代币统计 113
6.3 高级话题 125
6.3.1 散列表字典 126
6.3.2 查找树字典 126
6.4 小结 126
第7章 集合:不包含重复项的数据集 127
7.1 集合论 128
7.2 集合的初始化 129
7.3 案例回顾:用户登录到一个Web服务 133
7.4 案例学习:音乐播放列表 137
7.5 高级话题 150
7.5.1 散列表集合 150
7.5.2 树集合 151
7.5.3 数组集合 151
7.6 小结 151
第8章 结构体:更为复杂的数据类型 152
8.1 基本要点 152
8.1.1 C# 152
8.1.2 Java 158
8.1.3 Objective-C 158
8.1.4 Swift 161
8.2 枚举类型 165
8.3 小结 170
第9章 树:非线性数据结构 171
9.1 树结构与树类型 171
9.2 树的相关术语 172
9.3 树的基本操作 173
9.4 树的实例化 174
9.5 树的结构 174
9.6 递归 207
9.7 遍历 208
9.8 小结 209
第10章 堆:有序树 210
10.1 堆的实现 210
10.2 堆的操作 211
10.3 堆的实例化 212
10.4 最小堆结构 212
10.5 常见应用场景 227
10.6 小结 227
第11章 图:互相连接的对象 228
11.1 概念图示 228
11.2 图的操作 229
11.3 图的实现 231
11.4 图数据结构 231
11.5 小结 249
第12章 排序:为混乱带来秩序 250
12.1 选择排序 251
12.2 插入排序 255
12.3 冒泡排序 259
12.4 快速排序 263
12.5 归并排序 268
12.6 桶排序 273
12.7 小结 276
第13章 查找:找你所需 277
13.1 线性查找 277
13.2 二分查找 281
13.3 跳跃查找 284
13.4 小结 289