图书目录

目录              Contents第1章 绪论1

1.1 什么是数据结构1

1.1.1 数据结构的定义1

1.1.2 学习数据结构的意义4

1.2 基本概念和术语5

1.2.1 数据与数据元素5

1.2.2 数据的逻辑结构与存储结构5

1.2.3 数据运算6

1.2.4 数据类型与抽象数据类型7

1.3 算法和算法描述语言8

1.4 算法分析9

1.4.1 算法评价9

1.4.2 算法性能分析与度量13

本章小结18

习题18

第2章 线性表22

2.1 线性表的逻辑结构22

2.1.1 线性表的定义22

2.1.2 线性表的基本操作23

2.2 线性表的顺序存储及运算实现24

2.2.1 顺序表24

2.2.2 顺序表上基本运算的实现26

2.3 顺序表应用举例30

2.4 线性表的链式存储和运算实现31

2.4.1 单链表32

2.4.2 单链表基本运算的实现33    2.4.3 循环链表38

2.4.4 双向链表39

2.4.5 静态链表40

2.4.6 单链表应用举例41

2.5 顺序表和链表的比较46

本章小结47

习题48

◆数据结构(C语言版)目 录第3章 栈和队列52

3.1 栈52

3.1.1 栈的定义及基本操作52

3.1.2 栈的顺序存储及操作实现53

3.1.3 栈的链式存储及操作实现56

3.2 栈的应用举例59

3.3 递归69

3.3.1 递归定义69

3.3.2 递归和栈的关系70

3.3.3 递归算法实例71

3.4 队列74

3.4.1 队列的定义及基本操作74

3.4.2 队列的顺序存储实现及操作实现75

3.4.3 队列的链式存储实现及操作实现79

3.5 队列应用举例82

本章小结84

习题84

第4章 串88

4.1 串及其基本运算88

4.1.1 串的基本概念88

4.1.2 串的基本运算89

4.2 串的顺序存储及基本运算91

4.2.1 串的定长顺序存储91

4.2.2 定长顺序串的基本运算92

4.3 模式匹配93

4.3.1 简单的模式匹配算法94

4.3.2 KMP算法96

4.4 串的堆存储结构100

4.4.1 动态堆存储100

4.4.2 静态堆存储103

4.5 串的链式存储结构106

4.6 文本编辑--串操作应用108

本章小结109

习题110

第5章 数组和广义表113

5.1 数组113

5.1.1 数组的定义113

5.1.2 数组的内存映像114

5.2 特殊矩阵的压缩存储114

5.2.1 对称矩阵115

5.2.2 三角矩阵115

5.2.3 稀疏矩阵115

5.3 广义表121

5.3.1 广义表的定义121

5.3.2 广义表的存储122

5.3.3 广义表基本操作的实现123

本章小结127

习题127

第6章 树和二叉树131

6.1 树的基本概念131

6.1.1 树的定义及其表示131

6.1.2 基本术语133

6.2 二叉树134

6.2.1 二叉树的定义134

6.2.2 二叉树的性质134

6.2.3 二叉树的存储结构136

6.3 遍历二叉树138

6.3.1 先序遍历138

6.3.2 中序遍历140

6.3.3 后序遍历141

6.3.4 按层次遍历二叉树144

6.3.5 遍历算法的应用举例145

6.4 线索二叉树147

6.4.1 线索的概念147

6.4.2 线索的算法实现149

6.4.3 线索二叉树上的运算151

6.5 树与森林154

6.5.1 树的存储结构154

6.5.2 树、森林和二叉树的转换156

6.5.3 树和森林的遍历158

6.6 哈夫曼树159

6.6.1 基本术语160

6.6.2 哈夫曼树的建立161

本章小结166

习题167

第7章 图171

7.1 图的基本概念171

7.1.1 图的定义和术语171

7.1.2 图的基本操作175

7.2 图的存储结构176

7.2.1 邻接矩阵176

7.2.2 邻接表178

7.2.3 十字链表180

7.2.4 邻接多重表181

7.3 图的遍历183

7.3.1 深度优先搜索183

7.3.2 广度优先搜索184

7.3.3 应用图的遍历判定图的连通性186

7.3.4 图的遍历的其他应用187

7.4 最小生成树198

7.4.1 生成树及生成森林198

7.4.2 最小生成树的概念198

7.4.3 构造最小生成树的Prim算法199

7.4.4 构造最小生成树的Kruskal算法201

7.5 最短路径203

7.5.1 从一个源点到其他各点的最短路径204

7.5.2 每一对顶点之间的最短路径207

7.6 有向无环图及其应用209

7.6.1 有向无环图的概念209

7.6.2 AOV网与拓扑排序210

7.6.3 AOE图与关键路径215

本章小结219

习题220

第8章 查找224

8.1 基本概念224

8.2 线性表的查找226

8.2.1 顺序查找226

8.2.2 有序表的查找227

8.2.3 分块查找229

8.3 树表查找230

8.3.1 二叉排序树230

8.3.2 平衡二叉树(AVL树)235

8.3.3 B-树和B+树242

8.4 哈希表查找(杂凑法)246

8.4.1 哈希表与哈希方法246

8.4.2 常用的哈希方法248

8.4.3 处理冲突的方法249

8.4.4 哈希表的操作252

8.4.5 哈希表查找及其分析253

本章小结254

习题255

第9章 排序259

9.1 基本概念259

9.2 插入排序261

9.2.1 直接插入排序262

9.2.2 折半插入排序263

9.2.3 希尔排序265

9.3 交换排序266

9.3.1 冒泡排序267

9.3.2 快速排序268

9.4 选择排序272

9.4.1 简单选择排序272

9.4.2 堆排序273

9.5 归并排序276

9.6 基数排序278

9.6.1 多关键码排序278

9.6.2 链式基数排序279

本章小结283

习题283

第10章 数据结构综合应用287

10.1 各种结构类型之间的关系概述287

10.2 二叉树与分治策略290

10.3 图的遍历及其应用295

本章小结305

习题306

参考文献307

第1章 计算机系统结构导论1

  1.1 计算机系统结构的基本概念1

1.1.1 计算机系统的层次结构1

1.1.2 计算机系统结构、组成与实现3

1.1.3 计算机系统结构的发展历程7

1.1.4 计算机系统结构的分类14

  1.2 影响计算机系统结构的因素16

1.2.1 应用对计算机系统结构的影响16

1.2.2 算法对计算机系统结构发展的影响17

1.2.3 软件对计算机系统结构的影响18

1.2.4 器件对计算机系统结构发展的影响20

  1.3 计算机系统性能分析与系统结构的评价标准21

1.3.1 计算机性能的分析与评价21

1.3.2 系统结构的评测标准22

  1.4 定量分析技术基础25

1.4.1 大概率事件优先原则 25

1.4.2 Amdahl定律 26

1.4.3 CPU性能公式27

1.4.4 程序的局部性原理 30

  1.5 本章小结30

  习题131

第2章 现代计算机组成33

  2.1 中央处理机34

2.1.1 CPU的组成34

2.1.2 数据表示35

2.1.3 寻址方式概述36◆计算机系统结构目 录  2.2 存储系统37

2.2.1 存储系统概述38

2.2.2 存储系统的层次结构39

2.2.3 并行存储器41

2.2.4 程序访问的局部性43

  2.3 输入输出系统44

2.3.1 输入系统45

2.3.2 输出系统46

2.3.3 通道处理机和I/O处理机47

  2.4 总线49

2.4.1 总线系统概述50

2.4.2 总线基本工作原理51

2.4.3 设备的连接52

2.4.4 CPU和I/O处理的匹配52

  2.5 本章小结53

  习题254

第3章 数据表示与指令系统设计55

  3.1 数据表示55

3.1.1 数据表示与数据结构55

3.1.2 定点数据表示56

3.1.3 浮点数据表示57

3.1.4 自定义数据表示61

  3.2 寻址技术65

3.2.1 编址方式65

3.2.2 常用寻址方式65

3.2.3 寻址技术在指令中的指明68

3.2.4 定位方式68

  3.3 指令格式的优化设计68

3.3.1 指令格式的组成69

3.3.2 操作码的优化69

3.3.3 地址码优化设计73

3.3.4 指令格式优化设计方法75

3.3.5 DLX指令格式设计76

  3.4 指令系统的功能设计78

3.4.1 指令系统的发展78

3.4.2 复杂指令系统79

3.4.3 精简指令系统82

  3.5 本章小结85

  习题385

第4章 存储系统87

  4.1 存储系统的技术指标87

4.1.1 存储系统的基本要求87

4.1.2 存储系统的性能指标88

  4.2 虚拟存储器89

4.2.1 虚拟存储器的原理89

4.2.2 虚拟存储器的管理方式91

4.2.3 加快地址变换的方法97

4.2.4 页面替换算法101

4.2.5 堆栈型替换算法104

4.2.6 虚拟存储器的性能分析106

  4.3 高速缓冲存储器109

4.3.1 基本结构和工作原理110

4.3.2 地址映像及变换方式111

※4.3.3 替换算法119

※4.3.4 Cache性能分析123

4.3.5 提高Cache性能的方法127

  4.4 Cache-主存-辅存三级存储系统128

4.4.1 三级存储系统的组织方式128

※4.4.2 虚拟地址Cache130

  4.5 存储系统实例131

4.5.1 主存保护131

※4.5.2 主存保护实例134

  4.6 本章小结134

  习题4135

第5章 输入输出系统139

  5.1 输入输出工作原理139

5.1.1 输入输出系统的特点139

5.1.2 输入输出系统的组织方式140

5.1.3 基本输入输出方式141

  5.2 总线系统145

5.2.1 总线的分类145

5.2.2 总线结构的特点147

5.2.3 总线仲裁148

5.2.4 总线的控制方式148

5.2.5 总线的通信方式150

5.2.6 总线标准及发展152

5.2.7 总线的指标154

  5.3 中断系统155

5.3.1 中断源155

5.3.2 中断优先级156

5.3.3 中断处理过程157

5.3.4 中断系统的软硬功能分配159

5.3.5 中断屏蔽161

  5.4 通道处理机163

5.4.1 通道的工作过程164

5.4.2 通道的种类及相应的数据宽度、数据传送过程166

5.4.3 通道的流量分析169

  5.5 输入输出处理机171

5.5.1 输入输出处理机的特点172

※5.5.2 输入输出处理机的种类172

  5.6 本章小结173

  习题5173

第6章 流水线技术178

  6.1 指令重叠与先行控制178

6.1.1 重叠方式178

6.1.2 先行控制方式的结构180

6.1.3 先行控制方式的原理182

  6.2 流水线处理机183

6.2.1 流水线工作原理183

6.2.2 流水线的分类185

6.2.3 流水线的性能分析186

  6.3 标量流水线处理机中的相关195

6.3.1 资源相关195

6.3.2 数据相关196

6.3.3 控制相关200

  6.4 非线性流水线的调度技术207

6.4.1 非线性流水线的表示207

6.4.2 非线性流水线的调度209

  6.5 多指令流水线技术212

6.5.1 超标量处理机212

6.5.2 超流水线处理机215

6.5.3 超标量超流水线处理机216

※6.5.4 超长指令字(VLIW)处理机216

  6.6 向量处理机218

6.6.1 向量处理方式218

6.6.2 向量处理机结构219

6.6.3 向量计算机实例分析222

  6.7 本章小结226

  习题6227

第7章 并行处理机技术231

  7.1 互连网络231

7.1.1 互连函数231

7.1.2 互连网络的性能和特征234

7.1.3 静态互连网络235

7.1.4 动态互连网络238

  7.2 SIMD计算机244

7.2.1 SIMD计算机模型与特点244

7.2.2 SIMD计算机结构245

7.2.3 SIMD计算机实例247

7.2.4 SIMD处理机的算法举例253

  7.3 MIMD计算机256

7.3.1 MIMD计算机结构256

7.3.2 MIMD计算机的特点257

7.3.3 多处理机的Cache一致性259

  7.4 本章小结266

  习题7267

第8章 计算机系统结构进展269

  8.1 计算机系统结构新发展概述269

8.1.1 片上系统270

8.1.2 网格化的高性能计算机系统结构274

  8.2 新一代处理器体系结构280

8.2.1 多核处理器技术281

8.2.2 同构多核处理器架构284

8.2.3 异构多核处理器290

8.2.4 新一代处理器体系结构的研究趋势294

 ※8.3 几种专用的计算机系统结构介绍299

8.3.1 脉动阵列机300

8.3.2 数据流计算机305

8.3.3 归约机315

8.3.4 人工智能计算机320

  8.4 本章小结333

  习题8334

参考文献335