《数据结构》共分为9章。第1章绪论介绍了数据结构和算法的基本概念和常用术语;第2至第6章介绍了基本的数据结构,如线性表,栈与队列,串、数组和广义表,树和图,分别讨论了这几种结构类型数据的逻辑结构和存储结构,以及相应的算法;第7章和第8章介绍了几种常用的查找和排序方法;最后一章是本书的特色,增加了课程设计指导的内容,使学生在学完基本知识的同时,能够综合利用所学知识完成一些实际课题的设计与制作。另外,为了便于教学,每章后面还配有习题和实训练习题,还提供了实训练习题的相应参考答案。全书概念表述清楚、简洁,内容由浅入深,强调实践环节,利于教学和自学。
《数据结构》主要内容包括:数据结构绪论,线性表,栈和队列,串、数组和广义表,树,图,查找,排序等,以及课程设计指导。在每章开始给出了本章导读和教学目标,使学生在学习之前就能明白要重点掌握的内容;每章后附有大量的习题及实训,以便学生巩因所学知识。课程设计指导一章给出了几种设计题目及设计的思想供学生选择,有助于教师指导学生完成课程设计任务。
《数据结构》适合高等职业院校、高等专科学校、民办本科院校,以及软件职业教育学院、继续教育学院、技能紧缺人才培养使用,还可供计算机专业人员和爱好者使用。
第1章 绪论/(1)
1.1 数据结构的基本概念/(1)
1.1.1 数据结构的定义/(1)
1.1.2 数据的逻辑结构及存储结构/(3)
1.1.3 数据结构有关概念及术语/(4)
1.2 算法和算法描述/(5)
1.2.1 什么是算法/(5)
1.2.2 算法描述/(5)
1.3 算法分析/(6)
1.3.1 空间复杂度/(6)
1.3.2 时间复杂度/(6)
1.4 本章小结/(7)
习题1/(7)
第2章 线性表/(10)
2.1 线性表的逻辑结构/(10)
2.1.1 线性表的定义/(10)
2.1.2 线性表的基本操作/(11)
2.2 线性表的顺序存储结构/(11)
2.2.1 线性表的顺序存储——顺序表/(11)
2.2.2 顺序表基本操作的实现/(12)
2.2.3 顺序表的应用举例/(16)
2.3 线性表的链式存储结构/(19)
2.3.1 线性表的链式存储——链表/(19)
2.3.2 单链表/(20)
2.3.3 循环链表/(29)
2.3.4 双向链表/(30)
2.3.5 单链表应用举例/(32)
2.4 本章小结/(36)
习题2/(36)
实训1/(39)
第3章 栈与队列/(42)
3.1 栈/(42)
3.1.1 栈的定义/(42)
3.1.2 栈的顺序存储及其基本操作的实现/(43)
3.1.3 栈的链式存储及其基本操作的实现/(49)
3.1.4 栈的应用举例/(52)
3.2 队列/(55)
3.2.1 队列的定义/(55)
3.2.2 队列的顺序存储及其基本操作的实现/(55)
3.2.3 队列的链式存储及其基本操作的实现/(60)
3.2.4 队列的应用举例/(63)
3.3 本章小结/(64)
习题3/(64)
实训2/(67)
第4章 串、数组和广义表/(76)
4.1 串/(76)
4.1.1 串的定义和特性/(76)
4.1.2 串的顺序存储及其基本操作实现/(77)
4.1.3 串的链式存储及其基本操作实现/(85)
4.1.4 串的应用举例/(86)
4.2 数组/(86)
4.2.1 数组的定义和运算/(86)
4.2.2 数组的顺序存储结构/(87)
4.2.3 矩阵的压缩存储/(88)
4.2.4 稀疏矩阵/(89)
4.3 广义表/(95)
4.3.1 广义表的定义和特性/(95)
4.3.2 广义表的存储结构及其基本操作实现/(96)
4.4 本章小结/(97)
习题4/(97)
实训3/(99)
第5章 树/(103)
5.1 树/(103)
5.1.1 树的定义及基本术语/(103)
5.1.2 树的表示/(104)
5.2 二叉树及其遍历/(105)
5.2.1 二叉树的定义/(105)
5.2.2 二叉树的重要性质/(105)
5.2.3 二叉树的存储结构/(107)
5.2.4 二叉树的遍历/(108)
5.3 线索二叉树/(115)
5.3.1 线索二叉树的定义/(115)
5.3.2 线索二叉树的基本操作/(117)
5.4 树和森林/(118)
5.4.1 树的存储结构/(118)
5.4.2 二叉树与树之间的转换/(120)
5.4.3 森林与二叉树的转换/(120)
5.4.4 树与森林的遍历/(121)
5.5 二叉树应用实例/(122)
5.5.1 二叉排序树/(122)
5.5.2 平衡二叉树/(128)
5.5.3 B树/(131)
5.5.4 哈夫曼树/(133)
5.6 本章小结/(135)
习题5/(136)
实训4/(140)
实训4.1 二叉树的操作/(140)
实训4.2 树的应用/(140)
第6章 图/(145)
6.1 图的基本概念/(145)
6.1.1 图的定义/(145)
6.1.2 图的基本术语/(146)
6.2 图的存储结构/(148)
6.2.1 邻接矩阵/(148)
6.2.2 邻接表/(150)
6.3 图的遍历/(152)
6.3.1 深度优先搜索/(152)
6.3.2 广度优先搜索/(154)
6.4 最小生成树/(157)
6.4.1 普里姆算法/(158)
6.4.2 克鲁斯卡尔算法/(161)
6.5 最短路径/(164)
6.5.1 单源最短路径/(165)
6.5.2 每对顶点之间的最短路径/(169)
6.6 拓扑排序/(173)
6.6.1 AOV网/(173)
6.6.2 拓扑(Topology)排序的实现/(174)
6.7 本章小结/(177)
习题6/(177)
实训5/(180)
第7章 查找/(184)
7.1 查找的基本概念/(184)
7.2 顺序查找/(185)
7.3 二分查找/(186)
7.4 分块查找/(189)
7.5 哈希表查找/(192)
7.5.1 哈希表查找的基本概念/(192)
7.5.2 构造哈希函数的方法/(193)
7.5.3 哈希冲突解决方法/(195)
7.5.4 哈希查找效率的分析/(199)
7.6 本章小结/(200)
习题7/(200)
实训6/(203)
第8章 排序/(206)
8.1 排序的基本概念/(206)
8.2 插入排序/(207)
8.2.1 直接插入排序/(208)
8.2.2 二分法插入排序/(209)
8.2.3 希尔排序/(210)
8.3 选择排序/(212)
8.3.1 简单选择排序/(212)
8.3.2 堆排序/(213)
8.4 交换排序/(216)
8.4.1 冒泡排序/(216)
8.4.2 快速排序/(219)
8.5 归并排序/(221)
8.6 基数排序/(223)
8.7 本章小结/(226)
习题8/(226)
实训7/(229)
第9章 课程设计指导/(234)
9.1 课程设计大纲/(234)
9.2 课程设计题目及设计要求/(235)
9.3 飞机售票系统实例/(237)
9.4 本章小结/(243)
附录A 习题答案/(245)
习题1/(245)
习题2/(246)
习题3/(249)
习题4/(251)
习题5/(253)
习题6/(257)
习题7/(259)
习题8/(262)
参考文献/(266)