数据结构
2003-7
机械工业出版社
肖石明
《数据结构》共分9章。第1章从逻辑结构、存储结构和数据运算3个方面介绍了数据结构的基本概念。第2至第6章介绍了线性结构,对线性表、链表、数组、栈、队列等常用的数据结构及排序、查找等常用算法作了较详细的介绍。第7章介绍了树形结构。第8章对图形结构作了介绍。第9章介绍了文件的基本概念和结构。《数据结构》是针对高等职业技术学院计算机类各专业“数据结构”课程而编写的。根据我国高职学生的特点,《数据结构》本着宽、新、浅、够用的原则,对理论部分的描述尽量做到深入浅出,通俗易懂,并辅以一定量的例题讲解,便于学生自学。书中采用了高职计算机类学生必修的C语言作为算法描述语言。为方便学生课后总结和巩固所学知识,各章后均配置了小结和一定量的习题。《数据结构》可作为高等职业技术学院及大专层次学生“数据结构”课程的教材和计算机工程技术人员的自学参考书。
前言第1章 概论1.1 为什么要学习数据结构1.2 什么是数据结构1.3 数据的逻辑结构1.3.1 基本概念1.3.2 数据的逻辑结构构成1.3.3 数据逻辑结构的分类1.4 数据的存储结构1.5 数据的运算和算法1.5.1 数据运算1.5.2 算法1.5.3 算法的评价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 数组2.4.1 数组定义2.4.2 数组的顺序存储结构2.4.3 稀疏矩阵的压缩存储2.4.4 稀疏矩阵的转置算法2.5。义表2.5.1 广义表的定义2.5.2 广义表的存储结构2.5.3 广义表的基本操作2.6 本章小结习题二第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.2 串的存储结构4.2.1 顺序存储4.2.2 链接存储4.2.3 索引存储4.3 串的基本运算4.4 本章小结习题四第5章 线性表的查找5.1 基本概念5.2 顺序查找5.2.1 顺序查找的基本思想5.2.2 顺序表的顺序查找5.2.3 链表的顺序查找5.2.4 顺序查找的效率5.3折半查找5.3.1 折半查找的基本思想5.3.2 折半查找过程示例5.3.3 折半查找算法5.4 分块查找5.5 哈希表及其查找5.5.1 哈希表的概念5.5.2 哈希函数的构造方法5.5.3 冲突处理5.5.4 哈希表查找及其分析5.6 本章小结习题五第6章 序6.1 基本概念6.2 插入排序6.2.1 直接插入排序6.2.2 希尔排序6.3 交换排序6.3.1 冒泡排序6.3.2 快速排序6.4 选择排序6.5 归并排序6.5.1 归并排序的基本思想6.5.2 归并排序过程示例6.5.1 序算法6.6 基数排序6.6.1 基数排序的基本思想6.6.2 基数排序示例6.6.3 链式基数排序算法6.7 本章小结习题六第7章 树7.1 树的基本概念7.1.1 树的定义7.1.2 常用术语7.1.3 树的存储结构7.2 二叉树7.2.1 二叉树的定义7.2.2 二叉树的基本性质7.3 二叉树的存储结构7.3.1 二叉树的存储结构分类7.3.2 二叉链表的生成7.4 二叉树的遍历7.5 线索二叉树7.5.1 建立线索二叉树7.5.2 访问线索二叉树7.6 二叉排序树和平衡二叉树7.6.1 二叉排序树7.6.2 平衡二叉树7.7 树、森林与二叉树的关系7.7.1 森林与二叉树之间的转换7.7.2 树和森林的运算7.8 哈夫曼树7.8.1 哈夫曼树的定义7.8.2 哈夫曼树的构造7.9 本章小结习题七第8章 图8.1 图的基本概念8.2 图的存储结构8.2.1 邻接矩阵表示法8.2.2 邻接表表示法8.3 图的遍历8.4 最小生成树8.4.1 生成树和最小生成树的概念8.4.2 普里姆(Prim)算法8.4.3 克鲁卡尔(Kruskal)算法8.5 图的其他应用8.5.1 最短路径8.5.2 拓扑排序8.6 本章小结习题八第9章 文件9.1 文件的基本知识9.1.1 文件的概念9.1.2 文件的种类9.1.3 文件的存储9.1.4 文件的操作(运算)9.2 文件的结构9.2.1 顺序文件(Sequentialfile)9.2.2 索引文件9.2.3 ISAM文件9.3 本章小结习题九部分习题解答习题二 解答习题三 解答习题四 解答习题五 解答习题六 解答习题七 解答习题八 解答习题九 解答参考文献
版权页:插图:计算机的出现,带来了一场翻天覆地的革命。近年来,计算机的使用已渗透到各行各业,对计算机本身的功能和各种应用软件也提出了越来越高的要求。计算机是用来处理数据的,对数据的处理过程称为算法。在计算机出现的初期,由于使用的领域和计算机本身功能的限制,处理的数据较为单一,因此那时人们对算法给予了高度的重视,而对于数据本身的结构,却并不关心。20世纪60年代以来,计算机大量用于非数值计算领域,所处理的数据量也随之增加,数据类型也越来越多,为了更好地更有效地处理大量的复杂数据,人们开始对数据结构进行研究。1968年,在美国计算机协会颁布的教学计划中,第一次规定了数据结构作为一门独立的计算机课程在大学里开设。这时,人们在设计程序时已不是单独地研究算法,而是认为:程序=数据结构+算法。在20世纪80年代初,我国开始在大学里开设“数据结构”这门课程,现在该门课程已是计算机类专业的一门必修的专业基础课。1.2 什么是数据结构数据结构是指相互之间存在一种或多种关系的数据元素的集合。它指的是数据元素之间的相互关系,即数据库的组织形式。这种组织形式就是数据的逻辑结构。在计算机实际处理数据的过程中,我们必须考虑数据应以什么方式进行存储能使之体现数据之间的关系。数据在计算机中的存储方式,就是数据的存储结构。除此在数据的处理过程中,还会出现数据的删除、插入、查找等操作,因此我们还应该考虑数据处理的方式,即算法。
《数据结构》:新世纪高等职业教育规划教材