本书对常用的数据结构做了系统介绍,既注重原理又强调实践,配有大量的图表和习题,概念讲解清晰、逻辑性强、可读性好。主要内容包括:数据结构的基本概念;算法描述和算法分析初步;线性表、堆栈、队列、串、数组、树、图等结构;排序和查找的各种方法;另外还用一章的篇幅详细介绍了链式存储结构以加深读者的理解。每一章均列举了典型应用实例,并配有算法和程序以供教学和实践使用。 本书可作为高等院校应用型本科、专科及高等职业院校计算机类专业数据结构课程的教材,也可以作为大学非计算机专业学生的选修课教材和计算机应用技术人员的自学参考书。 第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.4算法和算法分析1.4.1算法特性1.4.2影响算法效率的因素1.4.3算法效率的评价上机实训习题第2章线性表2.1内存静态分配2.2线性表的定义与运算2.2.1线性表的定义2.2.2线性表的基本操作2.3线性表的顺序存储结构2.3.1顺序表2.3.2顺序表上基本运算的实现2.4应用举例及分析上机实训习题第3章链表3.1内存动态分配3.1.1函数malloc()3.1.2函数free()3.2线性表的链式存储3.2.1线性链表3.2.2单链表上的基本运算3.2.3循环链表3.2.4双向链表3.3顺序表和链表的比较3.4应用举例及分析上机实训习题第4章栈和队列4.1栈4.1.1栈的定义及基本操作4.1.2栈的顺序存储结构4.1.3栈的链式存储结构4.2队列4.2.1队列的定义及基本操作4.2.2队列的顺序存储结构4.2.3队列的链式存储结构4.3应用举例及分析上机实训习题第5章串和广义表5.1串的定义和基本运算5.1.1串的定义5.1.2串的基本运算5.2串的表示和实现5.2.1定长顺序存储5.2.2链式存储5.2.3堆分配存储5.3串基本运算的实现5.4广义表5.4.1广义表的定义和性质5.4.2广义表的存储5.5应用举例及分析上机实训习题第6章树和二叉树6.1树的定义和术语6.1.1树的定义6.1.2基本术语6.1.3树的存储6.2二叉树6.2.1二叉树的定义6.2.2二叉树的性质6.2.3二叉树的存储6.2.4二叉树的建立6.3遍历二叉树6.3.1遍历二叉树6.3.2恢复二叉树6.4树、森林与二叉树的转换6.4.1一般树转换为二叉树6.4.2森林转换为二叉树6.4.3二叉树转换为树和森林6.5二叉树的应用举例6.6哈夫曼树及其应用6.6.1哈夫曼树的引入6.6.2哈夫曼树的建立6.6.3哈夫曼编码上机实训习题第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.4生成树和最小生成树7.4.1生成树和生成森林7.4.2最小生成树7.4.3普里姆(Prim)算法7.4.4克鲁斯卡尔(Kruskal)算法7.5单源最短路径7.5.1单源最短路径的概念7.5.2求单源最短路径的方法7.6AOV网与拓扑排序7.6.1AOV网与拓扑排序7.6.2拓扑排序的实现7.7AOE网与关键路径7.7.1概述7.7.2关键路径的确定上机实训习题第8章查找8.1查找的基本概念8.2静态查找表8.2.1顺序查找8.2.2二分查找8.2.3索引顺序查找8.3动态查找表8.3.1二叉排序树定义8.3.2二叉排序树的插入和生成8.3.3二叉排序树的删除8.3.4二叉排序树上的查找8.4散列表8.4.1散列表与散列函数8.4.2散列函数的构造方法8.4.3处理冲突的方法8.4.4散列表的查找及分析上机实训习题第9章排序9.1基本概念9.2插入排序9.2.1直接插入排序9.2.2二分插入排序9.2.3希尔排序9.3交换排序9.3.1冒泡排序9.3.2快速排序9.4选择排序9.4.1简单选择排序9.4.2堆排序9.5归并排序9.6各种排序方法的比较上机实训习题附录设计性上机实训课程设计指导课程设计参考题目课程设计(实训)报告参考格式参考文献
阅读更多