数据结构
2003-5
西安电子科技大学出版社
朱战立
257
无
数据结构是计算机学科的一门核心课程,也是其他一些和计算机学科关系密切的学科或专业的一门必修或选修课程。数据结构课程的任务是讨论现实世界中数据的各种逻辑结构、在计算机中的存储结构以及实现各种操作的算法等问题。开设数据结构课程的目的是使学生掌握如何组织数据、如何存储数据和如何处理数据的基本方法,从而为以后进行软件开发和应用以及进一步学习后续专业课程打下坚实的基础。 本书是普通高等教育“十五”国家级规划教材。作者十几年来一直讲授数据结构课程,编写过两本数据结构教材以及一本数据结构学习辅导书,其中一本数据结构教材曾获部级三等奖。本书是作者多年教学经验和教材编著经验的结晶。 本书共分10章。书中讨论的典型数据结构包括表、堆栈、队列、数组、串、树、二叉树、图、递归程序设计、排序和查找方法,介绍的典型存储结构包括顺序存储结构、链式存储结构以及这两种典型存储结构的结合。本书采用C语言作为算法描述语言,所有算法和设计例子均在计算机上测试通过。本书的特点是概念叙述简洁,深入浅出,概念讨论和实际例子相结合,实际设计例子典型且完整。 习题的选择和设计是教材编写的一个重要方面。作者在习题选择和设计上考虑了习题的广泛性和典型性,并把所有习题按类型分成基本概念题、复杂概念题、算法设计题和上机实习题4大类。习题分类设计既方便了学生学习和复习,也方便了教师布置作业。标有“*”号的习题难度较大,可供学生选做。完成上机实习作业是学生普遍感觉困难的一个问题,为此,附录给出了上机实习内容规范和两个上机实习范例。 根据作者的经验,使用本教材授课约需60-70课时,其中包括10-20课时的课内上机实践。根据课时数和学生的理解程度,目录中标有“*”号的各节可酌情考虑。对于有条件上机的学生来说,除课内上机实践外,应尽可能多地增加课外上机实践,以加深理解课程中的概念和提高实际动手进行程序设计的能力。 尽管作者在写作过程中非常认真和努力,但错误和不足之处仍在所难免,敬请读者批评指正。
《普通高等教育十五国家级规划教材:数据结构》讨论的典型数据结构包括表、堆栈、队列、数组、串、树、二叉树、图、递归程序设计、排序和查找方法,典型存储结构包括顺序存储结构、链式存储结构以及这两种典型存储结构的结合。数据结构是计算机等专业必修的核心课程。《普通高等教育十五国家级规划教材:数据结构》的特点是概念叙述简洁,深入浅出,概念讨论和实际设计相结合,实际设计例子典型且完整,均采用C语言设计实现。 本教材是普通高等教育“十五”国家级规划教材。《普通高等教育十五国家级规划教材:数据结构》既可作为高等院校计算机等专业的教材,也可作为其他相关专业学生以及自考生的教材或参考书。
第1章 绪论1.1 数据结构的基本概念1.2 抽象数据类型和软件构造方法1.3 算法和算法的时间复杂度1.3.1 算法1.3.2 算法设计的目标1.3.3 算法时间效率的度量1.4 算法设计1.5 算法书写规范1.6 本课程内容概述习题第2章 线性表2.1 线性表的抽象数据类型2.2 线性表的顺序表示和实现2.2.1 顺序表的存储结构2.2.2 顺序表的操作实现2.2.3 顺序表操作的效率分析2.2.4 顺序表的应用举例2.3 线性表的链式表示和实现2.3.1 单链表的存储结构2.3.2 单链表的操作实现2.3.3 单链表操作的效率分析2.3.4 单链表应用举例2.3.5 循环单链表2.3.6 双向链表2.4 设计举例2.5 本章小结习题二第3章 堆栈和队列3.1 堆栈3.1.1 堆栈和堆栈的抽象数据类型3.1.2 堆栈的顺序表示和实现3.1.3 堆栈的链式表示和实现*3.2 堆栈应用——表达式计算3.3 队列3.3.1 队列和队列抽象数据类型3.3.2 顺序队列3.3.3 顺序循环队列的表示和实现3.3.4 链式队列3.3.5 队列的应用*3.4 优先级队列3.4.1 顺序优先级队列的设计和实现3.4.2 优先级队列的应用3.5 本章小结习题三第4章 串4.1串4.1.1 串及其基本概念4.1.2 串的抽象数据类型4.1.3 C语言的串函数4.2 串的存储结构4.2.1 串的顺序存储结构4.2.2 串_的链式存储结构4.3 串基本操作的实现算法4、4 串的模式匹配算法4.4.1 Brute—Force算法4.4.2 KMP算法4.4.3 Brute-Force算法和KMP算法的比较4.5 本章小结习题四第5章 数组5.1 数组的实现机制5.2 动态数组的设计方法5.3 特殊矩阵的压缩存储5.4 稀疏矩阵的压缩存储5.4.1 稀疏矩阵的三元组顺序表5.4 一稀疏矩阵的三元组链表5.5 本章小结习题五第6章 递归6.1 递归的概念6.2 递归算法的执行过程6.3 递归算法的设计方法6.4 递归过程和运行时栈6.5 递归算法的效率分析*6.6 递归算法到非递归算法的转换6.7 设计举例6.7.1 一般递归算法设计举例*6.7.2 回溯法及设计举例6.8 本章小结习题六第7章 树和二叉树7.1 树7.1.1 树的定义7.1.2 树的表示方法7.1.3 树的抽象数据类型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.5 哈夫曼树7.5.1 哈夫曼树的基本概念7.5.2 哈夫曼编码问题_*7.5.3 哈夫曼编码问题设计和实现7.6 树的存储结构、转换和遍历7.6.1 树的存储结构7.6.2 树与二叉树的转换7.6.3 树的遍历7.7 本章小结习题七第8章 图8.1 图的基本概念8.1.1 图的基本概念8.1.2 图的抽象数据类型8.2 图的设计和实现8.2.1 图的邻接矩阵存储结构8.2.2 图的邻接表存储结构8.2.3 邻接矩阵存储结构下图的操作实现8.3 图的遍历8.3.1 图的深度和广度优先遍历算法8.3.2 图的深度和广度优先遍历算法设计和实现8.4 最小生成树8.4.1 最小生成树的基本概念8.4.2 普里姆算法*8.4.3 普里姆函数设计和实现8.4.4 克鲁斯卡尔算法8.5 最短路径8.5.1 最短路径的基本概念8.5.2 从一个顶点到其余各顶点的最短路径*8.5.3 狄克斯特拉算法设计和实现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.5 归并排序9.6 综合应用举例9.7 本章小结习题九第10章 查找10.1 查找的基本概念10.2 静态查找表10.2.1 顺序表10.2.2 有序顺序表10.2.3 索引顺序表10.3 动态查找表10.3.1 二叉排序树10.3.2 B一树10.4 哈希表10.4.1 哈希表的基本概念10.4.2 哈希函数构造方法10.4.3 哈希冲突解决方法10.4.4 哈希表设计举例10.5本章小结习题十附录A 上机实习内容规范附录B 上机实习范例参考文献
无