出版说明
前言
第1章 数据结构与程序
1.1 数据结构在程序设计中的作用
1.2 数据结构概述
1.2.1 数据结构基本概念
1.2.2 数据结构分类
1.3 算法及其描述
1.3.1 什么是算法
1.3.2 算法的描述
1.3.3 算法的复杂度
1.4 小结
1.5 实训
1.6 习题
第2章 线性表
2.1 线性表的定义及运算
2.1.1 线性表的定义
2.1.2 线性表的运算
2.2 线性表的顺序存储及运算
2.2.1 顺序存储结构
2.2.2 顺序存储结构下的运算
2.3 线性表的链式存储及运算
2.3.1 链式存储结构
2.3.2 链式存储结构下的运算
2.4 循环链表及双向链表
2.4.1 循环链表
2.4.2 双向链表
2.5 线性表的应用
2.6 小结
2.7 实训
2.8 习题
第3章 数组与字符串
3.1 数组的定义及存储
3.1.1 数组的定义及运算
3.1.2 数组的顺序存储结构
3.2 矩阵的压缩存储
3.2.1 特殊矩阵
3.2.2 稀疏矩阵
3.3 字符串的存储及运算
3.3.1 字符串的定义及运算
3.3.2 字符串的存储结构
3.3.3 字符串运算的实现
3.4 小结
3.5 实训
3.6 习题
第4章 栈和队列
4.1 栈及其应用
4.1.1 栈的定义及运算
4.1.2 栈的顺序存储结构
4.1.3 栈的链式存储结构
4.1.4 栈的应用
4.2 队列及其应用
4.2.1 队列的定义及运算
4.2.2 队列的存储
4.2.3 循环队列
4.2.4 队列的应用
4.3 小结
4.4 实训
4.5 习题
第5章 查找技术
5.1 基本概念
5.2 线性表的查找
5.2.1 顺序查找
5.2.2 折半查找
5.2.3 分块查找
5.3 哈希表的查找
5.3.1 哈希表
5.3.2 哈希函数的构造方法
5.3.3 处理冲突的方法
5.3.4 哈希表的查找过程
5.4 各种查找方法的比较
5.5 查找算法举例
5.6 小结
5.7 实训
5.8 习题
第6章 排序技术
6.1 基本概念
6.2 插入排序
6.2.1 直接插入排序
6.2.2 折半插入排序
6.3 交换排序
6.3.1 冒泡排序
6.3.2 快速排序
6.4 选择排序
6.5 归并排序
6.6 各种内部排序算法的比较
6.7 内部排序算法举例
6.8 外部排序简介
6.9 小结
6.10 实训
6.11 习题
第7章 树形结构
7.1 树的基本概念
7.1.1 树的定义
7.1.2 树的基本术语
7.2 树的存储结构
7.2.1 双亲表示法
7.2.2 孩子表示法
7.2.3 孩子兄弟表示法
7.3 二叉树
7.3.1 二叉树的定义和性质
7.3.2 二叉树的存储结构
7.4 二叉树的遍历
7.4.1 二叉树的中根遍历
7.4.2 二叉树的先根遍历
7.4.3 二叉树的后根遍历
7.4.4 二叉树操作实例
7.5 线索树
7.5.1 线索树的结构
7.5.2 中根线索树的建立
7.5.3 节点的检索
7.5.4 节点的插入
7.6 树、森林与二叉树的关系
7.7 哈夫曼树及其应用
7.7.1 基本概念
7.7.2 哈夫曼树的构造
7.7.3 哈夫曼编码
7.8 二叉查找树
7.8.1 二叉查找树的定义及其结构
7.8.2 二叉查找树的建立
7.8.3 在二叉查找树上进行查找
7.8.4 在二叉查找树上删除节点
7.8.5 叉查找树的查找分析及评价
7.9 堆排序
7.9.1 堆定义
7.9.2 堆的建立
7.9.3 堆排序的实现
7.10 小结
7.11 实训
7.12 习题
第8章 图结构
8.1 图的基本概念
8.2 图的存储结构
8.2.1 邻接矩阵
8.2.2 邻接表
8.3 图的遍历
8.3.1 深度优先搜索
8.3.2 广度优先搜索
8.4 拓扑排序
8.4.1 基本概念
8.4.2 拓扑排序的实现
8.5 最短路径
8.5.1 从某一源点到其他各顶点的最短路径
8.5.2 图中任意两个顶点间的最短路径
8.6 最小生成树
8.6.1 基本概念
8.6.2 普里姆算法
8.6.3 克鲁斯卡尔算法
8.7 关键路径
8.8 小结
8.9 实训
8.10 习题