内容介绍
用户评论
全部咨询
内容简介
数据结构教科书已出版多年,但直至目前为止其内容仍采用类Pascal语言,而作为教学语言的Pascal正在或已被流行的C语言所替代。本书正是用C语言描述数据结构及其算法。本书以数据元素之间的“1对1”、“1对多”及“多对多”关系为主要线索,用C语言由简到繁地描述了:线性表、树及图等几种基本数据结构,以及查找、排序等常用算法和文件组织。该书重点介绍基本数据结构的存贮结构及其基本运算的实现。
本书虽为高等院校计算机专业必修课的教科书,但经过适当删节即可作为大学专科、成人教育用书,亦可作为自学参考书。
目录
- 第一章 C语言简介
1.1 C语言的结构
1.1.1 C语言的特点
1.1.2 一个简单的C语言程序
1.2 数据类型、运算符和表达式
1.2.1 数据类型
1.2.2 常数
1.2.3 变量
1.2.4 运算符和表达式
1.3 流程控制和复合语句
1.3.1 语句和复合语句
1.3.2 二路选择语句if—else
1.3.3 多路选择语句switch
1.3.4 循环语句
1.4 数组
1.4.1 一维数组
1.4.2 字符数组
1.4.3 多维数组
1.5 函数
1.5.1 函数的基本结构
1.5.2 函数调用的参数传递
1.5.3 函数的递归调用
1.5.4 变量存储类型
1.6 指针
1.6.1 指针运算符&和*
1.6.2 指针和函数参数
1.6.3 指针和数组
1.6.4 指针运算
1.6.5 指针和函数
1.7 结构和联合
1.7.1 结构说明和结构变量的引用
1.7.2 结构和函数
1.7.3 结构数组
1.7.4 联合
1.7.5 类型定义
习题
第二章 数据结构引论
2.1 什么是数据结构
2.2 什么是算法
2.3 算法评价
2.4 数据结构的地位及各章安排
习题
第三章 线性表与数组
3.1 线性表的逻辑结构
3.2 线性表的顺序存贮结构
3.3 栈
3.3.1 栈的逻辑结构
3.3.2 栈的顺序存贮结构
3.3.3 栈的应用举例
3.4 队列
3.4.1 队列的定义及运算
3.4.2 循环队列
3.5 数组
3.5.1 数组的定义
3.5.2 数组的顺序存贮结构
3.5.3 矩阵的压缩存贮
3.6 广义表
3.6.1 广义表的定义及运算
3.6.2 广义表的存贮结构
3.6.3 广义表的递归算法
习题
第四章 线性链表
4.1 单向链表
4.1.1 单向链表及其存储结构
4.1.2 单向链表的运算
4.1.3 栈和队列的链表结构及其运算
4.2 线性链表的其它形式
4.2.1 循环链表
4.2.2 双向链表
4.3 应用举例
4.3.1 一元多项式相加
4.3.2 动态存储管理
4.4 稀疏矩阵的链表结构
4.5 串
4.5.1 串的定义
4.5.2 串的运算
4.5.3 串的存储结构
4.5.4 在链式存储结构上实现串的基本运算
习题
第五章 树
5.1 树的基本概念
5.1.1 树的定义
5.1.2 树的表示方法
5.1.3 树的基本术语
5.1.4 树的存贮结构
5.2 二叉树
5.2.1 二叉树及其性质
5.2.2 二叉树的存贮结构
5.2.3 树和二叉树之间转换
5.3 二叉树的遍历
5.3.1 二叉树的遍历
5.3.2 递归形式的遍历过程
5.3.3 利用堆栈的遍历过程
5.4 线索二叉树
5.4.1 什么是线索树
5.4.2 如何建立线索树
5.4.3 利用线索的遍历过程
5.5 二叉排序树
5.5.1 什么是二叉排序树
5.5.2 构造二叉排序树
5.5.3 构造线索二叉树
5.6 哈夫曼树
5.6.1 基本术语
5.6.2 构造哈夫曼树
5.6.3 哈夫曼树的应用
习题
第六章 图
6.1 图的基本概念
6.1.1 图的定义
6.1.2 图的基本术语
6.2 图的存贮结构
6.2.1 邻接矩阵表示法
6.2.2 邻接表
6.2.3 十字链表
6.2.4 邻接多重表
6.2.5 边集数组
6.3 图的遍历
6.3.1 深度优先搜索
6.3.2 广度优先搜索
6.3.3 图的生成树和连通分量
6.4 最小生成树
6.4.1 普里姆算法
6.4.2 克鲁斯卡尔算法
6.5 最短路径
6.5.1 从某源点到其余各点的最短路径
6.5.2 每一对顶点之间的最短路径
6.6 AOV网与拓扑排序
6.7 AOE网与关键路径
6.7.1 基本术语
6.7.2 关键路径的算法
习题
第七章 查找
7.1 查找的基本概念
7.2 基本查找方法
7.2.1 顺序查找
7.2.2 折半查找
7.2.3 查找有序表的其它方法
7.2.4 分块查找
7.3 静态树型查找
7.3.1 问题的提出
7.3.2 静态最优查找树
7.3.3 次优查找树及其构造方法
7.4 动态树型查找
7.4.1 二叉排序树查找
7.4.2 平衡二叉树
7.4.3 B_树
7.5 散列法
7.5.1 散列法的基本思想
7.5.2 构造散列(哈希)函数的几种方法
7.5.3 解决冲突的办法
7.5.4 散列法的平均查找长度
习题
第八章 排序
8.1 排序的基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 折半插入排序
8.2.3 希尔排序
8.3 选择排序
8.3.1 直接选择排序
8.3.2 树形选择排序
8.3.3 堆排序
8.4 交换排序
8.4.1 起泡排序
8.4.2 快速排序
8.5 基数排序
8.6 归并排序
8.7 外排序
8.7.1 多路归并排序
8.7.2 置换—选择排序
8.7.3 最佳归并树
习题
第九章 文件
9.1 文件的基本概念
9.1.1 文件的逻辑结构
9.1.2 文件的存取
9.1.3 文件的操作(运算)
9.1.4 文件的存贮结构
9.2 顺序文件
9.2.1 顺序文件的特点
9.2.2 磁带上的顺序文件操作举例
9.2.3 顺序文件的查找
9.3 索引文件
9.3.1 概述
9.3.2 静态索引—ISAM文件
9.3.3 动态索引—VSAM文件
9.4 散列文件
9.4.1 按桶散列
9.4.2 可扩充的散列
9.5 多重链接表文件
9.6 倒排文件
习题
参考文献