《数据结构》王宇川 主编 | PDF下载|ePub下载
数据结构 版权信息
- 出版社:机械工业出版社
- 出版时间:2008-08-01
- ISBN:9787111242925
- 条形码:9787111242925 ; 978-7-111-24292-5
数据结构 本书特色
本书共分8章,第1章介绍了数据结构的基本概念、算法描述和算法分析;第2章介绍了线性表的基本概念、存储结构、基本操作和算法实现;第3章介绍了栈和队列的基本概念、存储结构、基本操作和算法实现;第4章介绍了串、数组和矩阵的基本概念、存储结构、基本操作和算法实现;第5章介绍了树和二叉树的概念、存储结构和基本操作,二叉树的性质、遍历,树、森林和二叉树的相互转换,哈夫曼树的基本概念和哈夫曼编码的实现;第6章介绍了图的基本概念、存储结构和基本操作,图的遍历、*小生成树、*短路径和拓朴排序;第7章介绍了查找的基本概念、静态查找、动态查找和哈希表查找等算法;第8章介绍了排序的基本概念,插入排序、交换排序、选择排序、归并排序和基数排序等内部排序算法以及多路平衡归并为例的外部排序基本知识。本书不仅可作为高职、高专计算机专业的配套教材,也可以作为本、专科相关专业学生、自考学员和专业教师的辅助教材。
数据结构 内容简介
本书是根据高职高专计算机专业数据结构课程教学大纲的要求,结合作者多年教学工作经验积累而编写完成的具有工程实用价值的基础教材。全书共分8章,第1~6章分别讨论数据结构基本概念线性表、栈和队列、串和数组、树以及图等内容,第7、8章讨论各种查找和排序方法的算法实现与应用。
本书以C语言为程序设计基础语言,在描述上力求通俗易懂、深入浅出、简单明了、循序渐进。为方便读者,书中还配有例题讲解、习题练习和项目实训,提供了数据结构中大量经典算法及其可执行的完整C语言源程序。
本书不仅可作为高职、高专计算机专业的配套教材,也可以作为本、专科相关专业学生、自考学员和专业教师的辅助教材。
为方便教学,本书配备电子课件等教学资源。凡选用本书作为教材的教师均可登录机械工业出版社教材服务网www.cmpedu.com免费下载。如有问题请致信cmpgaozhi@sina.com.或致电010―88379375联系营销人员
数据结构 目录
第1章 绪论
1.1 引言
1.2 基本概念和术语
1.3 算法和算法分析
1.3.1 算法特性
1.3.2 算法描述
1.3.3 算法性能分析与度量
1.4 数据结构课程的内容
习题
第2章 线性表
2.1 线性表的定义及逻辑结构
2.2 线性表的基本操作
2.3 线性表的顺序存储结构
2.3.1 顺序表
2.3.2 顺序表的基本运算
2.3.3 顺序表应用举例
2.4 线性表的链式存储结构
2.4.1 单链表
2.4.2 单链表的基本运算
2.4.3 循环链表
2.4.4 双向链表
2.4.5 静态链表
2.4.6 链表应用举例
2.5 顺序表和链表的比较
习题
上机实训
第3章 栈和队列
3.1 栈
3.1.1 栈的定义及基本运算
3.1.2 栈的顺序存储结构
3.1.3 栈的链式存储结构
3.1.4 栈的应用举例
3.1.5 栈与递归
3.2 队列
3.2.1 队列的定义及基本运算
3.2.2 队列的顺序存储结构
3.2.3 队列的链式存储结构
3.2.4 队列应用举例
习题
上机实训
第4章 其他线性数据结构
4.1 串
4.1.1 串的定义及基本操作
4.1.2 串的定长顺序存储结构
4.1.3 串的堆存储结构
4.1.4 串应用举例
4.2 多维数组
4.2.1 数组的定义及基本操作
4.2.2 数组的内存映像――向量存储结构
4.2.3 数组的应用举例
4.3 矩阵的压缩存储
4.3.1 稀疏矩阵的压缩存储
4.3.2 特殊矩阵的压缩存储
习题
上机实训
第5章 树和二叉树
5.1 树的定义和基本操作
5.1.1 树的定义
5.1.2 基本术语
5.1.3 树的基本操作
5.2 二叉树
5.2.1 二叉树的定义和基本操作
……
第6章 圈
第7章 查找
第8章 排序
参考文献
数据结构 节选
第1章 绪论
1.1 引言
数据结构(Data Structure)是计算机及相关专业的一门十分重要的基础核心课程。所有的计算机系统和应用软件都要用到各种类型的数据结构,因此,想要更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是远远不够的。要想有效地使用计算机,充分发挥计算机的性能,必须学习和掌握好数据结构的有关知识。打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的。
在计算机发展的初期,人们使用计算机的主要目的是处理数值计算问题。使用计算机解决一个具体问题时,一般需要经过下列几个步骤:首先要从该具体问题抽象出一个适当的数学模型,然后设计或选择一个解此数学模型的算法,*后编出程序进行测试,直至得到*终的解答。例如,求解梁架结构应力的数学模型中的线性方程组,就可以使用迭代算法来求解。
由于早期所涉及的运算对象是简单的整型、实型或布尔类型数据,所以程序设计者的主要精力集中在程序设计的技巧上,而无须考虑数据结构。随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题越来越显得重要。据统计,当今处理非数值计算性问题占用了90%以上的机器时间,而且这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。因此,有效地解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构。
例1.1学生信息检索系统。需要查找某个学生或者某个专业或年级的学生整体的有关信息的时候,只要建立了相关的数据结构,按照某种算法编写相应程序,就可以实现计算机自动检索。由此,可以在学生信息检索系统中建立一张按学号顺序排列的学生信息表和分别按姓名、专业、年级顺序排列的索引表,如图所示。由这四张表构成的文件就是学生信息检索的数学模型,计算机的主要操作是按照某个特定要求(如给定姓名)对学生信息文件进行查询。
诸如此类的信息检索还有电话自动查号系统、考试查分系统、仓库库存管理系统等。在这类文档管理的数学模型中,计算机处理的对象之间通常存在着一种简单的线性关系,这类数学模型可称为线性的数据结构。
……