首页 > 其他分享 >数据结构基础第6讲

数据结构基础第6讲

时间:2024-04-23 22:55:54浏览次数:26  
标签:连通 遍历 拓扑 路径 基础 算法 考点 数据结构

数据结构基础第6讲 图及其应用

1-2个选择

img

考点一:图的基本概念

1.图基本概念

  1. 连通图:

    img

  2. 极大连通子图-连通分量:

    img

  3. 极小连通子图-生成树:

    img

  4. 强连通顶点

    img

    给定n个顶点,要保证图在任何情况下连通需要最小边数:

    • 1.生成树,边(n-1)
    • 2.完全无向图\(\frac{(n-1)\times n}{2}\)
    • 3.\(\left \{ \begin{matrix} (n-1)个点 \Rightarrow 完全图 \frac{(n-1)\times (n-2)}{2} \\ 1条边 \end{matrix} \right .\)

    边设为E,\(E < n-1\) 一定不连通

    \(|E|\geqslant(n-1)不一定\\ \frac{(n-1) \times(n-2)}{2}\geqslant E \geqslant n-1\)

    \(E\geqslant\frac{(n-1)(n-2)}{2}+1\)一定连通

考点二:图的存储

1.邻接矩阵

img

img

2.邻接矩阵的特性

img

3.邻接表

  1. 邻接表概述

    img

  2. 邻接表结点结构

    img

    img

  3. 邻接表特点

    img

    img

    img

考点三:图的遍历

1.深度优先DFS

img

img

一些规律:

img

算法分析:

img

2.深度优先遍历生成树

img

img

3.广度优先

img

img

img

当一个点先遍历,下一层的点从它先出发

结论:

img

算法分析:

img

4.广度优先遍历生成树

img

img

5.关于图遍历

img

img

考点四:最小生成树

img

1.Prim算法(贪吃蛇)

img

  1. 算法演示过程

img

img

img

img

img

img

img

2.Kruskal算法

img

  1. 算法过程:

img

img

img

img

img

img

img

  1. 合并子树问题:

    img

  2. 算法分析:

    img

  3. 最小生成树唯一性:

    img

    在遇到相同权值时会有不同选法

    img

考点五:最短路径

1.路径

img

2. Dijkstra算法:单源点最短路径问题 \(\bigstar\)

  1. 问题描述

    img

  2. 基本思想

    按长度递增的次序生成各顶点的最短路径

    img

    img

    不适合有负权的边,也不适合有负回路

    img

3.Floyd算法

  1. 算法实现:

    img

    当K=0表示经过\(v_0\),当K=1表示经过\(v_1\),当K=2表示经过\(v_2\)

    img

    img

  2. 算法分析

    img

无法解决负权回路

img

考点六:AOV网和拓扑排序

1.用点表示活动的网,用边表示活动先后顺序,叫AOV网

img

2.拓扑排序

按其顶点的先后顺序将其整到一个序列中,且满足1,2

img

  1. 过程:

    找到入度为0的结点去掉它及他的边;剩余点同理,由此得到的序列就是拓扑序列

  2. 拓扑序列唯一性问题

    img

    当存在平行边时一定不唯一

    存在多个入度为0的点,也不唯一

    有环一定没有拓扑序列

考点七:AOE网和关键路径

1.AOE网

用边表示活动

img

img

2.AOE网的性质

img

3.关键路径和关键活动

img

img

找关键路径:挨个数

标签:连通,遍历,拓扑,路径,基础,算法,考点,数据结构
From: https://www.cnblogs.com/JUANFENHUI/p/18153997

相关文章

  • 数据结构基础第5讲
    数据结构基础第5讲树和二叉树本章内容:考点一:基本术语1.数的引入2.树的定义层次,分支,一对多。互不相交的含义:3.结点的分类结点的度:4.结点的关系树的深度:树中结点最大高度称为树的高度(或树的深度)行兄弟结点:在同一层但不是兄弟的结点路径长度:等于路径......
  • 数据结构的练习day2(未完待续)
    数据结构线性结构之单向循环链表的基本操作/***********************************************************************************************************设计单向循环链表的接口****Copyright(c)[email protected]......
  • 数据结构:单循环链表的创建插入与删除
    数据结构:单循环链表的创建·插入·删除/***@filename: 单循环链表的创建·插入·删除*@brief实现单循环链表的创建删除插入的功能*@[email protected]*@date2024/04/23*@version1.0:版本*@notenoone*CopyRight(c)2023-2024liuliu@......
  • 【基础】Flink -- State 状态总结
    【基础】Flink--StateFlink--StateFlink中的状态有状态算子状态的分类按键分区状态KeyedState支持的结构类型值状态ValueState列表状态ListState映射状态MapState规约状态ReducingState聚合状态AggregatingState状态的生存时间算子状态OperatorState算子......
  • python 基础习题2--字符串切片技术
    1. 有如下字符串str='123456789'字符串切片技术,例如,返回输出从第三个开始到第六个的字符(不包含)即得到:345利用字符串切片技术,代码可以这么写:print(str[2:5])如果想返回如下八行结果,利用字符串切片技术,如何编写代码?12345678912345678134534567892412345678912345678......
  • python 基础习题1--基础语法
    1.书写代码,输出结果为: 答案:print("Hello,Python!")ViewCode 2. ......
  • PROFINET IO应用层数据结构
    从远古时代讲起在300/400的年代,SIMATIC模块要提供一些特定的信息的方法是将特定信息保存到SSL里,通过查询的方法获得。SSL中文名叫做系统状态列表,帮助里面有些时候有写成SZL,不过都是一样的东西。在Step7中使用SFC51(RDSYSST),SFB54(RALRM)来获取SSL和报告系统错误,具体的record......
  • JS基础(二)运算符、流程控制语句、数组对象、JSON对象、Date对象、Math对象、Function对
    一运算符<script>//算数运算符//(1)自加运算varx=10;//x=x+1;//x+=2;varret=x++;//先赋值再计算:x+=1//varret=++x;//先计算再赋值:x+=1console.log(x)......
  • 【数据结构】链表(单链表实现+详解+原码)
    目录【数据结构】链表(单链表实现+详解+原码)【数据结构】链表(单链表实现+详解+原码)代码:#include<math.h>usingnamespacestd;typedefstructnode{ intdata; structnode*next;}NODE;intmain(void){ NODEa,b,c; NODE*p; a.data=1; a.next=&b;......
  • .net 连接数据库sql-server 基础入门
    usingSystem.Data;usingSystem.Data.SqlClient;classPranson(){publicstaticvoidMain(){//创建数据库链接对象stringconnString="Server=.;DataBase=CourseManageDB;Uid=sa;Pwd=123456";SqlConnectionconn=newSqlConn......