本书主要包括数据结构的基本概念、基本的数据结构(线性表、栈和队列、串、数组与广义表、树、图)和基本技术(查找方法与排序方法)三个部分。本书除重点介绍了数据的组织技术外,还贯穿了程序设计中应掌握的技术,如参数传递技术、动态处理的指针技术、数组技术、递归技术与队列技术等。另外,本书给出了许多经典的查找与排序算法,为读者继续拓展思路提供线索。 本书是在版的基础上修订而成的,内容丰富,概念清晰,技术实用,同时还配有大量的例题、习题和实习题。本书将读者熟悉的标准 C 语言作为算法描述的语言,采用了面向对象的方法来讲述数据构中的技术,这种描述体系也是本书特色之一。 本书既可作为大专院校计算机等专业数据结构课程的教材,也可供从事计算机开发和应用的工程技术人员学习和参考。
目录
- 第1章 绪论
- 1.1 什么是数据结构(定义)
- 1.2 数据结构的内容
- 1.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.3.3 循环链表
- 2.3.4 双向链表
- 2.3.5 静态链表
- 2.3.6 顺序表和链表的比较
- 2.4 一元多项式的表示及相加
- 习题 实习题
- 第3章 限定性线表——栈和队列
- 3.1 栈
- 3.1.1 栈的定义
- 3.1.2 栈的表示和实现
- 3.1.3 栈的应用举例
- 3.1.4 栈与递归的实现
- 3.2 队列
- 3.2.1 队列的定义
- 3.2.2 队列的表示和实现
- 3.2.3 队列的应用举例
- 习题 实习题
- 第4章 串
- 4.1 串的定义
- 4.2 抽象数据类型串的实现
- 4.2.1 定长顺序串
- 4.2.2 堆串
- 4.2.3 块链串
- 4.3 串的应用举例:文本编辑 习
- 题 实习题
- 第5章 数组和广义表
- 5.1 数组的定义和运算
- 5.2 数组的顺序存储和实现
- 5.3 特殊矩阵的压缩存储
- 5.3.1 三角矩阵
- 5.3.2 带状矩阵
- 5.3.3 稀疏矩阵
- 5.4 广义表
- 习题 实习题
- 第6章 树和二叉树
- 6.1 树的概念与定义
- 6.2 二叉树
- 6.2.1 二叉树的定义与基本操作
- 6.2.2 二叉树的性质
- 6.2.3 二叉树的存储结构
- 6.3 二叉树的遍历与线索化
- 6.3.1 二叉树的遍历
- 6.3.2 基于栈的递归消除
- 6.3.3 遍历算法应用
- 6.3.4 线索二叉树
- 6.4 树、森林和二叉树的关系
- 6.4.1 树的存储结构
- 6.4.2 树、森林的遍历
- 6.4.3 树与森林的遍历
- 6.5 哈夫曼树及其应用
- 6.5.1 哈夫曼树
- 6.5.2 哈夫曼编码
- 6.5.3 哈夫曼码算法的实现
- 习题 实习题
- 第7章 图
- 第8章 查找
- 第9章 内部排序
- 第10章 外部排序附录
- 数据结构试题选编
- 参考文献