大二 数据结构 期末复习自用(仅供参考)
课本:数据结构(C语言版) 严蔚敏
数据结构期中考试,重点考查内容
1.时间复杂度的计算
2.语句的执行频度
3.顺序表的删除、插入、查找的算法与分析
4.单链表的删除、插入算法与分析
5.单链表的头插法与尾插法
6.线性表的合并(顺序表与链表)
7.顺序栈的出栈入栈操作
8.循环队列的入队,出队,判满,判空
10.数组的地址求法
11.ADT的写法(只考线性关系)
我们都考简答题和算法题
数据结构期末考试,重点考查内容
- 课本例题和习题
- 期中部分
- 平均查找长度(ASL) 博客链接
- 所列算法,代码要理解或背下
前置
线性表List,顺序表SqList,单链表结点LNode,双向链表结点DuLNode
栈Stack,顺序栈SqStack,链栈结点StackNode
队列Queue,顺序存储结构的队列SqQueue,链队列结点QNode,链队列指针LinkQueue
串String,
第一章 绪论
1. 时间复杂度的计算
2. 空间复杂度的计算
3. 语句的执行频度
4. ADT的写法(只考线性关系)
线性表List,栈Stack,队列Queue,串String,
抽象数据类型表示方法:
三元组(D,S,P) D:数据对象 S:D上的关系集 P:D上的基本操作集。
所以,抽象数据类型的三要素为:数据对象,数据关系和基本操作。
定义抽象数据类型:
ADT 抽象数据类型名{
数据对象:(数据元素集合)
数据关系:(数据关系二元组结合)
基本操作:(操作函数的罗列)
基本操作名(参数表)
初始条件:(初始条件描述,无可省略不写)
操作结果:(操作结果描述)
}ADT 抽象数据类型名
**其中**数据对象和数据关系采用数学符号和自然语言描述
举个栗子
重点
其他
第二章 线性表
1. 顺序表(重点:顺序表的删除、插入、查找的算法与分析)
顺序表:顺序存储的线性表
1.1顺序表元素存储地址的计算
LOC(ai+1)=LOC(ai)+len
LOC(ai)=LOC(a1)+(i-1)*len
1.2顺序表的存储结构
举个栗子
2. 单链表的删除、插入算法与分析
3. 单链表的头插法与尾插法
4. 线性表的合并(顺序表与链表)
5. 循环链表
6. 双向链表
第三章 栈和队列
1. 顺序栈的出栈入栈操作
2. 循环队列的入队,出队,判满,判空
第四章 串、数组和广义表
1. 数组的元素地址求法
2. 特殊矩阵的压缩存储
见链接博客
3. BF算法(最简单的模式匹配的算法)
4. KMP算法 不考 见链接
第五章 树和二叉树
不考算法(考一道递归题)
1. 递归算法(遍历?)
2. 森林,树,二叉树的相互转换
3. 哈夫曼树的构造(最优二叉树)
见链接博客
二叉树左右子树先看权值,小的为左子树
权值同则看深度,深度小的为左子树
4. 树的带权路径长度计算
WPL=
4. 由遍历序列确定的二叉树
第六章 图
不考算法
1. 图的存储结构
1.1 邻接矩阵
见链接博客
邻接矩阵表示法 = 二维数组 + 顶点表(一维数组)
1.2 邻接链表
2. 图的遍历
2.1 深度优先搜索(DFS)
2.2 广度优先搜索(BFS)
3. 图的应用
3.1 最小生成树(结果可能不唯一)
3.1.1 普里姆算法(加点法,不成环)
最后:n个点,n-1条边
3.1.2 克鲁斯卡尔算法(加边法,不成环)
最后:n个点,n-1条边
3.2 最短路径
3.2.1 单源最短路径—用Dijkstra(迪杰斯特拉)算法
1条边,2条边,,,