21世纪高等学校计算机类课程创新规划教材·微课版新编数据结构案例教程C/C++语言(微课版)/薛晓亚等 本书特色
本书在主要介绍数据的逻辑结构、数据的存储结构、数据的运算等基本知识的基础上,从抽象数据类型的角度,讨论各种基本类型的数据结构及相关应用。
全书共分5篇: 第1篇(第1章)为绪论篇,着重介绍数据结构的相关概念和算法的基础知识;第2篇(第2~5章)为线性结构篇,着重讨论线性结构的概念和基本运算的算法实现,介绍了一般的线性结构和特殊的线性结构在不同存储结构之下的基本操作和应用; 第3篇(第6章)为树形结构篇,着重介绍基本的树形结构——二叉树在不同存储结构之下如何实现基本操作和应用; 第4篇(第7章)为图形结构篇,介绍图形结构在不同存储结构之下的基本操作和应用; 第5篇(第8~10章)为数据运算篇,首先介绍数据的查找和排序基本运算的算法实现,接着介绍常见的查找和排序方法,分析并对比它们的算法效率,*后介绍数据结构的基础知识在程序设计竞赛中的应用。全书提供了大量应用实例,每种算法都采用C/C 语言进行描述,帮助读者理解基础理论。
本书叙述清楚,便于教学和读者自学,适合作为高等院校计算机专业及信息相关专业的教材,也可作为计算机应用技术人员的参考书。
21世纪高等学校计算机类课程创新规划教材·微课版新编数据结构案例教程C/C++语言(微课版)/薛晓亚等 内容简介
本书在主要介绍数据的逻辑结构、数据的存储结构、数据的运算等基本知识的基础上,从抽象数据类型的角度,讨论各种基本类型的数据结构及相关应用。
全书共分5篇: 篇(章)为绪论篇,着重介绍数据结构的相关概念和算法的基础知识;第2篇(第2~5章)为线性结构篇,着重讨论线性结构的概念和基本运算的算法实现,介绍了一般的线性结构和特殊的线性结构在不同存储结构之下的基本操作和应用; 第3篇(第6章)为树形结构篇,着重介绍基本的树形结构——二叉树在不同存储结构之下如何实现基本操作和应用; 第4篇(第7章)为图形结构篇,介绍图形结构在不同存储结构之下的基本操作和应用; 第5篇(第8~10章)为数据运算篇,首先介绍数据的查找和排序基本运算的算法实现,接着介绍常见的查找和排序方法,分析并对比它们的算法效率,很后介绍数据结构的基础知识在程序设计竞赛中的应用。全书提供了大量应用实例,每种算法都采用C/C++语言进行描述,帮助读者理解基础理论。
本书叙述清楚,便于教学和读者自学,适合作为高等院校计算机专业及信息相关专业的教材,也可作为计算机应用技术人员的参考书。
21世纪高等学校计算机类课程创新规划教材·微课版新编数据结构案例教程C/C++语言(微课版)/薛晓亚等 目录
目录
第1篇绪论篇
第1章绪论
1.1什么是数据结构
1.1.1数据结构的产生与发展
1.1.2数据结构的基本概念
1.1.3逻辑结构的种类
1.1.4数据的存储结构
1.2抽象数据
1.2.1数据类型
1.2.2抽象数据类型的表示与实现
1.3算法及其性能分析
1.3.1算法
1.3.2算法设计的目标
1.3.3算法的时间复杂度度量
1.3.4算法的空间复杂度度量
1.4STL概述
1.4.1STL的发展和特点
1.4.2C 标准库和STL
1.4.3数据结构和STL的关系
1.5综合案例
1.5.1哥德巴赫猜想问题
1.5.2连续整数问题
本章小结
第2篇线性结构篇
第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.5STL与链表
2.4综合案例
2.4.1一元多项式的表示及相加运算
2.4.2魔法师发牌问题
2.4.3约瑟夫问题
本章小结
第3章栈与队列
3.1栈
3.1.1栈的概述
3.1.2栈的顺序存储结构
3.1.3栈的链式存储结构
3.2栈综合案例
3.2.1进制转换
3.2.2表达式求值
3.2.3检验表达式中的括号匹配情况
3.2.4栈与递归问题
3.3队列
3.3.1队列的定义和抽象数据类型
3.3.2队列的顺序存储
3.3.3队列的链式存储
3.3.4优先级队列
3.4STL中的栈与队列
3.4.1STL中的栈
3.4.2STL中的队列
3.4.3STL中的优先队列的使用方法
3.5队列综合案例
3.5.1打印杨辉三角形
3.5.2报数问题
3.5.3舞伴问题
本章小结
第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串的KMP算法
4.4综合案例
4.4.1文本编辑
4.4.2建立词索引表
本章小结
第5章数组和广义表
5.1数组的定义及抽象数据类型
5.1.1数组的定义
5.1.2数组的抽象数据类型
5.2数组的顺序存储与寻址
5.2.1以行序为主序
5.2.2以列序为主序
5.3特殊矩阵及其压缩存储
5.3.1对称矩阵
5.3.2下(上)三角矩阵
5.3.3对角矩阵
5.4稀疏矩阵
5.4.1稀疏矩阵的三元组表示
5.4.2稀疏矩阵的十字链表表示
5.5广义表
5.5.1广义表的定义
5.5.2广义表的存储结构
5.5.3广义表的运算
5.6综合案例
5.6.1大整数相乘
5.6.2荷兰国旗问题
本章小结
第3篇树形结构篇
第6章树和二叉树
6.1树
6.1.1树的定义
6.1.2树的术语
6.1.3树的基本性质
6.1.4树的抽象数据类型
6.2二叉树
6.2.1二叉树的定义
6.2.2二叉树的性质
6.2.3二叉树的抽象数据类型
6.2.4二叉树的存储结构
6.3二叉树的基本操作
6.3.1中序遍历
6.3.2先序遍历
6.3.3后序遍历
6.3.4层次遍历
6.3.5二叉树遍历的应用
6.3.6二叉树遍历的非递归实现
6.4线索二叉树
6.4.1线索二叉树的概念
6.4.2线索化二叉树
6.4.3遍历线索二叉树
6.5树与森林
6.5.1树的存储结构
6.5.2森林与二叉树的转换
6.5.3树的遍历与森林的遍历
6.6哈夫曼树及其应用
6.6.1哈夫曼树的基本概念
6.6.2哈夫曼树构造算法
6.6.3哈夫曼编码
6.7STL中实现树结构
6.7.1STL中的vector
6.7.2STL中的map
6.8综合案例——学校建模问题
本章小结
第4篇图形结构篇
第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.3.3连通分量
7.4*小生成树
7.4.1普里姆算法
7.4.2克鲁斯卡尔算法
7.5*短路径
7.5.1单源*短路径
7.5.2全源*短路径
7.6活动网络
7.6.1用顶点表示活动的AOV网络
7.6.2AOE图与关键路径
7.7综合案例
7.7.1道路修建问题
7.7.2回家路线问题
7.7.3棍子还原问题
本章小结
第5篇数据运算篇
第8章查找
8.1查找的基本概念
8.2静态表的查找
8.2.1顺序查找
8.2.2折半查找
8.2.3斐波那契查找
8.2.4分块查找
8.3动态查找表
8.3.1二叉排序树
8.3.2平衡二叉树
8.3.3B-树
8.3.4B 树
8.4哈希表查找
8.4.1哈希表的基本概念
8.4.2哈希函数构造方法
8.4.3哈希冲突解决方法
8.4.4哈希表上的查找分析
8.5STL中的查找
8.6综合案例——拼写检查问题
本章小结
第9章排序
9.1排序的基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2希尔排序
9.3交换排序
9.3.1冒泡排序
9.3.2快速排序
9.4选择排序
9.4.1简单选择排序
9.4.2锦标赛排序
9.4.3堆排序
9.5二路归并排序
9.6基数排序
9.7内部排序方法的比较
9.8STL中的排序
9.9综合案例——比赛排名问题
本章小结
第10章ACM经典案例
10.1递归算法
10.1.1三柱汉诺塔问题
10.1.2传染病问题
10.1.3N皇后问题
10.2DFS与BFS问题
10.2.1DFS之迷宫难题
10.2.2BFS之管道和指针游戏
本章小结
附录A全国计算机专业数据结构考研大纲
参考文献