数据结构(高等职业教育“十一五”规划教材,高职高专软件工程系列教材)
定 价:22 元
丛书名:
抱歉,本教材暂不参与当前样书赠送活动!
- 作者:许文宪
- 出版时间:2004/8/1
- ISBN:9787030137821
- 出 版 社:科学出版社
- 中图法分类:H31
- 页码:212
- 纸张:
- 版次:1
- 开本:16
- 字数:(单位:千字)
《高等职业教育“十一五”规划教材·高职高专软件工程系列教材:数据结构》介绍了数据结构的基本概念以及各种常用的数据结构,包括线性表、栈和队列、串和数组、树形结构、图、查找、排序等。全书采用C语言来描述数据结构和算法的描述。
书中内容的安排以“基本够用、适当扩展”为原则,知识讲述力求通俗易懂、逻辑严谨。每章配有相当数量的例题和习题,并附有上机实践的内容,便于理论教学和实践教学。
《高等职业教育“十一五”规划教材·高职高专软件工程系列教材:数据结构》可以作为高职高专计算机类或信息管理类专业的专科教材,也可以作为专升本考试的辅导教材。
更多科学出版社服务,请扫码获取。
《高等职业教育“十一五”规划教材·高职高专软件工程系列教材:数据结构》共分9章。第1章介绍数据结构与算法的一些基本概念和术语,并对算法描述和算法分析做了简要说明;第2~5章分别介绍了线性结构中的线性表、栈和队列、串、数组等;第6~7章介绍了非线性结构中的树、二叉树、图;第8~9章则介绍了在实际中广泛应用的排序和查找的基本算法。每章配有相当数量的例题和习题,并配有上机实习内容,便于读者巩固所学知识。
第1章 概论
1.1 基本概念和术语
1.1.1 逻辑结构
1.1.2 存储结构
1.2 算法的描述和算法的分析
习题
第2章 线性表
2.1 线性表的逻辑结构
2.2 线性表的顺序存储结构
2.2.1 顺序表
2.2.2 顺序表的基本运算
2.3 线性表的链式存储结构
2.3.1 单链表
2.3.2 循环链表
2.3.3 双向链表
2.4 顺序表和链表的比较
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的定义和基本运算
3.1.2 顺序栈
3.1.3 链栈
3.2 队列
3.2.1 队列的定义和基本运算
3.2.2 顺序队列
3.2.3 链队列
3.3 栈和队列的应用
习题
第4章 串
4.1 串及其运算
4.1.1 串的基本概念
4.1.2 串的基本运算
4.2 串的存储结构
4.2.1 串的顺序存储
4.2.2 串的链式存储
4.2.3 串的运算
习题
第5章 多维数组和广义表
5.1 多维数组
5.2 矩阵的压缩存储
5.2.1 特殊矩阵
5.2.2 稀疏矩阵
5.3 广义表的概念
习题
第6章 树和二叉树
6.1 树的概念
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.3 二叉树的遍历
6.4 线索二叉树
6.5 树和森林
6.5.1 树、森林和二叉树的转换
6.5.2 树的存储结构
6.5.3 树的遍历
6.6 哈夫曼树
6.6.1 哈夫曼树和哈夫曼算法
6.6.2 哈夫曼编码
习题
第7章 图
7.1 图的概念
7.2 图的存储结构
7.2.1 邻接矩阵
7.2.2 邻接表
7.3 图的遍历
7.3.1 深度优先遍历
7.3.2 广度优先遍历
7.4 生成树
7.4.1 生成树的概念
7.4.2 最小生成树
习题
第8章 排序
8.1 基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希尔排序
8.3 交换排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 选择排序
8.4.1 直接选择排序
8.4.2 堆排序
8.5 归并排序
8.6 分配排序
8.6.1 箱排序
8.6.2 基数排序
8.7 排序方法的比较和选择
习题
第9章 查找
9.1 基本概念
9.2 线性表的查找
9.2.1 顺序查找
9.2.2 二分查找
9.2.3 分块查找
9.3 树上的查找
9.4 散列技术
9.4.1 散列表的概念
9.4.2 散列函数的构造
9.4.3 冲突的处理
9.4.4 散列表上的运算
习题
附录上机实习指导材料
A.1 上机实习
A.2 上机实习二
A.3 上机实习三
A.4 上机实习四
A.5 上机实习五
A.6 上机实习六
A.7 上机实习七
A.8 上机实习八
A.9 上机实习九
A.10 上机实习十
主要参考文献
数据的存储结构不仅要存储数据元素本身,还要存储数据元素之间的相互关系。一般说来,数据的存储结构可以由以下四种基本存储方法得到:
1.顺序存储方法
该方法是把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构,通常借助于程序语言中的一维数组来描述。
顺序存储方法主要应用于线性结构,非线性结构也可以通过某种线性化的方法实现顺序存储。
2.链式存储方法 该方法不要求逻辑上相邻的结点在物理位置上也相邻,结点之间的逻辑关系由附加的“指针”来表示。由此得到的存储表示称为链式存储结构,通常借助于程序语言中的指针类型来描述。 3.索引存储方法
该方法是在存储结点的同时,建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式是:(关键字,地址),关键字是能唯一地标识一个结点的那些数据项。如果每个结点在索引表中都有一个索引项,则称该索引表为稠密索引;如果一组结点在索引表中只对应一个索引项,则称该索引表为稀疏索引。稠密索引中,索引项的地址指示结点所在的存储位置;稀疏索引中,索引项的地址指示一组结点所在的存储位置。
4.散列存储方法
该方法的基本思想是根据结点的关键字直接计算出结点的存储地址。 上述四种基本的存储方法,既可以单独使用,也可以结合起来使用,这要根据实际问题的需要而定,主要是考虑运算方便及算法的时间、空间要求。
要注意的是,数据的逻辑结构、存储结构和算法是数据结构中不可缺少的有机组成部分,是一个整体的三个方面。同一逻辑结构如果采用不同的存储方法,就可以得到不同的数据结构。例如,线性表是一种逻辑结构,若采用顺序存储方法表示,则得到的结构为顺序表;若采用链式存储方法表示,则得到的结构为链表;若采用散列存储方法表示,则得到的结构为散列表。同样,在给定了数据的逻辑结构和存储结构之后,按定义的运算及其运算的性质不同,也可以导致完全不同的数据结构。例如,对一个线性表,如果其插入、删除运算均被限制在表的一端进行,则该线性表称为栈;如果其插入运算被限制在表的一端进行,删除运算被限制在表的另一端进行,则该线性表称为队列。更进一步,如果线性表采用顺序表或链表作为存储结构,则对插入和删除运算做了上述限制后,可分别得到顺序栈或链栈、顺序队列或链队列。
……