
| 序 前言 教学建议 第一部分概论 第1章数据结构3 1.1什么是数据3 1.2什么是数据结构3 1.2.1数据的逻辑结构3 1.2.2数据的存储结构4 1.2.3数据的运算5 1.3什么是数据类型5 1.4知识点小结6 习题6 第2章算法7 2.1什么是算法7 2.2算法的描述7 2.3算法分析8 2.3.1时间复杂度8 2.3.2渐近符号9 2.3.3空间复杂度10 .2.3.4复杂度分析举例10 2.4知识点小结13 习题13 第二部分预备知识 第3章c语言、递归及存储分配方式16 3.1c语言的相关内容16 3.1.1函数的参数传递与结果返回16 3.1.2结构体类型17 3.1.3指针18 3.2递归18 3.3存储分配方式19 3.4知识点小结20 习题20 第三部分线性结构 第4章线性表22 4.1线性表的类型定义22 4.1.1线性表的逻辑结构22 4.1.2线性表的基本运算22 4.2线性表的顺序存储表示23 4.2.1顺序表23 4.2.2顺序表中基本运算的实现24 4.3线性表的链式存储表示30 4.3.1单链表30 4.3.2单链表中基本运算的实现31 4.4线性表的其他链式存储表示38 4.4.1静态单链表38 4.4.2双(向)链表41 4.4.3循环单(向)链表43 4.4.4循环双(向)链表46 4.5线性表的应用举例47 4.6顺序表和链表的比较48 4.7知识点小结49 习题49 第5章栈51 5.1栈的类型定义51 5.1.1栈的逻辑结构51 5.1.2栈的基本运算52 5.2栈的顺序存储表示52 5.2.1顺序栈52 5.2.2顺序栈中基本运算的实现53 5.3栈的链式存储表示55 5.3.1链栈55 5.3.2链栈中基本运算的实现55 5.4两个方向生长的栈56 5.5栈的应用举例57 5.6知识点小结61 习题61 第6章队列63 6.1队列的类型定义63 6.1.1队列的逻辑结构63 6.1.2队列的基本运算63 6.2队列的链式存储表示64 6.2.1链队列64 6.2.2链队列中基本运算的实现65 6.3队列的顺序存储表示66 6.3.1顺序队列66 6.3.2循环队列69 6.3.3循环队列中基本运算的实现71 6.4双端队列74 6.5队列的应用举例74 6.6知识点小结75 习题76 第7章串77 7.1串的类型定义77 7.1.1串的逻辑结构77 7.1.2串的基本运算77 7.2串的顺序存储表示78 7.3串的堆分配存储表示80 7.4串的块链存储表示81 7.5串的模式匹配82 7.6知识点小结88 习题88 第8章数组及广义表89 8.1数组的类型定义89 8.1.1数组的定义89 8.1.2数组的性质89 8.1.3数组的基本运算89 8.2数组的顺序存储表示90 8.3特殊矩阵的压缩存储92 8.3.1特殊形状矩阵的压缩存储93 8.3.2随机稀疏矩阵的压缩存储及其运算95 8.4广义表104 8.4.1广义表的基本概念104 8.4.2广义表的基本运算105 8.4.3广义表的存储结构106 8.5知识点小结108 习题108 第四部分非线性结构 第9章树110 9.1概述110 9.1.1树的定义及基本术语110 9.1.2树的存储结构112 9.2二叉树123 9.2.1二叉树的定义123 9.2.2二叉树的性质123 9.2.3二叉树的存储结构128 9.3二叉树的遍历132 9.3.1遍历操作132 9.3.2先序遍历132 9.3.3中序遍历133 9.3.4后序遍历134 9.3.5层次遍历135 9.3.6二叉树遍历的应用举例136 9.4线索二叉树144 9.4.1二叉树的线索化145 9.4.2线索二叉树上的运算149 9.5二叉树的应用156 9.5.1哈夫曼树及其应用156 9.5.2二叉排序树161 9.5.3平衡二叉树163 9.6树、森林与二叉树的相互转换166 9.6.1树与二叉树的相互转换166 9.6.2森林与二叉树的相互转换168 9.7树、森林的遍历169 9.7.1树的遍历169 9.7.2森林的遍历169 9.8树的应用举例170 9.9知识点小结171 习题172 第10章图173 10.1概述173 10.1.1图的定义及基本术语173 10.1.2图的存储结构179 10.1.3图的创建184 10.2图的遍历187 10.2.1深度优先搜索遍历187 10.2.2广度优先搜索遍历191 10.2.3图遍历的应用举例193 10.3生成树194 10.3.1连通图的生成树194 10.3.2连通网的最小生成树195 10.4最短路径197 10.4.1单源最短路径197 10.4.2每对顶点间的最短路径201 10.5有向无环图及其应用205 10.5.1aov网与拓扑排序205 10.5.2aoe网与关键路径207 10.6知识点小结209 习题209 第五部分两种重要运算 第11章查找212 11.1查找的基本概念212 11.2主要查找方法简介213 11.3静态查找213 11.3.1顺序查找213 11.3.2二分查找215 11.3.3分块查找219 11.4动态查找220 11.5散列查找227 11.5.1散列表的概念228 11.5.2散列函数的构造方法228 11.5.3处理冲突的方法229 11.5.4散列表的查找232 11.6知识点小结234 习题235 第12章内排序236 12.1排序的基本概念236 12.2插入排序237 12.2.1直接插入排序237 12.2.2希尔排序241 12.3交换排序242 12.3.1冒泡排序242 12.3.2快速排序244 12.4选择排序247 12.4.1直接选择排序247 12.4.2树形选择排序248 12.4.3堆排序249 12.5归并排序254 12.6分配排序255 12.6.1箱排序255 12.6.2基数排序255 12.7各种内排序法的比较257 12.8知识点小结257 习题258 第六部分文件的组织结构及排序 第13章文件260 13.1文件的基本概念260 13.2顺序文件260 13.3索引文件261 13.4索引顺序文件262 13.5散列文件267 13.6多关键字文件268 13.7知识点小结268 习题268 第14章外排序269 14.1多路平衡归并269 14.2置换选择排序272 14.3归并树及最佳归并树274 14.4知识点小结275 习题275 参考文献276 |
商品评论(0条)