本书主要内容分为两大部分,前半部分从抽象数据类型的角度讨论三大数据结构,即线性结构、层次结构和网状结构的逻辑特性、存储表示、基本操作及其应用;后半部分主要讨论查找和排序的各种实现方法和综合分析比较。
本书共分为10章和1个附录,第1章为绪论,介绍数据结构的基本概念、算法分析的方法及与算法描述有关的C++知识;第2章为线性表,主要介绍线性表的两种存储结构——顺序表和链表及其基本操作的算法实现;第3章为堆栈和队列,介绍这两种特殊线性结构的概念、操作与应用;第4章为串,介绍串的概念、串的基本操作与串的模式匹配算法;第5章为数组和广义表,介绍数组、稀疏矩阵和广义表的概念与相关操作的算法实现;第6章为树形结构,介绍树和二叉树的概念与各种操作的算法实现,其中特别突出二叉树的各种递归算法方法;第7章为图,介绍图的概念、图的各种操作算法实现以及图的典型应用;第8章为查找,介绍各种查找算法的算法思想及其实现过程;第9章为排序,介绍各种内排序和外排序算法的实现过程;第10章为文件,介绍各类文件的组织结构及其操作;附录A中介绍了一个用C++描述的顺序表类。
本书既适于作计算机及其相关专业的教材,又特别适合作信息管理与信息系统专业的教材;同时本书的编写既考虑到了庞大的C语言读者群,又充分利用了C++对描述数据结构的独特优势(如数据传递、抽象性等),使得本书的读者群更加广泛。
目录
- 第1章绪论
- 1.1数据结构的产生和发展
- 1.1.1数据结构的产生
- 1.1.2数据结构的发展
- 1.2数据结构的研究对象
- 1.3基本概念和术语
- 1.4数据结构与算法的关系
- 1.5算法与算法分析
- 1.5.1算法
- 1.5.2算法的描述方法
- 1.5.3算法设计目标
- 1.5.4算法效率的度量
- 1.6与算法描述有关的C++知识
- 1.6.1C++的输入和输出
- 1.6.2函数
- 1.6.3类和对象
- 1.6.4变量的引用类型
- 1.6.5运算符重载
- 1.6.6数据类型相关说明
- 1.6.7俩个相关的头文件
- 本章小结
- 习题一
- 第2章线性表
- 2.1线性表的基本概念
- 2.1.1线性表的定义
- 2.1.2线性表的抽象数据类型
- 2.2线性表的顺序存储和基本操作
- 2.2.1线性表的顺序存储一一顺序表
- 2.2.2顺序表的基本操作
- 2.2.3顺序表基本操作的算法分析
- 2.3线性表的链式存储和基本操作
- 2.3.1链式存储的概念
- 2.3.2单链表
- 2.3.3单链表的基本操作
- 2.3.4单链表基本操作的算法分析
- 2.3.5双向链表
- 2.3.6循环链表
- 2.4顺序表和链表的综合比较
- 2.5静态链表
- 2.6线性表算法设计举例
- 2.6.1顺序表算法设计举例
- 2.6.2单链表算法设计举例
- 本章小结
- 习题二
- 第3章堆栈与队列
- 3.1堆栈
- 3.1.1堆栈的基本概念
- 3.1.2堆栈的顺序存储和基本操作
- 3.1.3堆栈的链式存储和基本操作
- 3.2堆栈的应用举例
- 3.3队列
- 3.3.1队列的基本概念
- 3.3.2队列的顺序存储和基本操作
- 3.3.3队列的链式存储和基本操作
- 3.3.4其他队列一
- 3.4队列的应用举例
- 本章小结
- 习题三
- 第4章串
- 4.1串的基本概念
- 4.1.1串的定义
- 4.1.2串的抽象数据类型
- 4.2串的顺序存储和基本操作
- 4.2.1串的顺序存储——顺序串
- 4.2.2顺序串的基本操作
- 4.3串的链式存储和基本操作
- 4.3.1串的链式存储——链式串
- 4.3.2链式串的基本操作
- ……
- 第5章数组和广义表
- 第6章树和叉树
- 第7章图
- 第8章查找
- 第9章排序
- 第10章文件
- 附录A用面向对象的方法(C++的类)描述顺序表类
- 参考文献