数据结构复习

在这里插入图片描述
线性表:(数组 链表 栈 队列)
有顺序结构和链式结构
线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。


例题:
列车调度
括号匹配
后缀表达式

队列

采用顺序存储的时候存在上溢出问题,即前面还有空间,但是不能用了
解决办法,弄成循环队列,即需要首尾两个指针。
例题:
约瑟夫环问题(循环链表)

具有良好的递归特性,特别适合于程序设计
存储结构:数组 树形单链表 树形双链表 二叉树型表示

二叉树

存储结构:顺序存储 链式存储
树和森林都可以转化为二叉树

二叉树
完全二叉树
满二叉树

是一种完全二叉树

存储:邻接矩阵 数组模拟邻接表

图论算法

拓扑排序
最短路径算法

Floyed算法 :O(n3)适用于存在负边权的情况

Dijkstra算法: O(n2)适用于不存在负边权的情况,计算单源最短路,

图的连通性问题
并查集
最小生成树

prim算法
kruskal算法(利用了并查集)

拓扑排序和关键路径

AOV网:有向无环图 ,一个活动的所有前驱都完成后才能开始。类似于工程 (结点表示活动,有向边表示先后关系)

拓扑排序:对AOV图生成一个合法的拓扑序列(一个串行序列,任意一个活动的前驱活动都安排在这个活动前面)
用来安排工程中活动的先后顺序

AOE网络 研究完成工程至少需要多少时间。
(边表示活动 边权表示活动时间 两个顶点表示活动的开始事件和结束事件)

关键路径 从源点到汇点具有最大路径长度的路径(决定工期的是最长路径)

网络流

posted @ 2022-11-17 23:04  林动  阅读(9)  评论(0编辑  收藏  举报