图是由两个集合V和E构成,V表示有限的非空顶点集合,E表示两个“顶点对”边的集合。
有向图:顶点之间有指向的图<A,B>
无向图:顶点之间没有指向或者说顶点之间双向的图(A,B)
在这里插入图片描述
V(G1)={1,2,3,4,5}
E(G1)={(1,2),(2,3),(2,5),(3,5),(3,4),(4,1)}
V(G2)={1,2,3,4}
E(G2)={<1,3>,< 3,2>,<2,3>,<2,1>}

  1. 无向图:顶点的连线数量
  2. 无向图:入度+出度
    入度:指向该顶点的连线
    出度:该节点指出的连线

完全图

在这里插入图片描述
在无向图中完全图:每个顶点之间都有一条边相连
在无向图中完全图:每个顶点之间都有两条有向边相连

路径和回路

路径长度:一个顶点到达另一顶点所经过的路径数量
回路:从一个顶点出发回到这个顶点
简单回路:回路中没有经过重复的顶点

连通图

无向图的连通图:任意顶点之间都有路径可以到达
在这里插入图片描述

有向图:任意顶点之间都有路径可以到达 如:2和4之间2->3->4,4->2
在这里插入图片描述

连通分量

在这里插入图片描述

网络

在这里插入图片描述

图的存储

1.邻接矩阵

设图G有n (n1) 个顶点,则邻接矩阵是一个n阶方阵。
当矩阵中的 [i,j] !=0(下标从1开始) ,代表其对应的第i个顶点与第j个顶点是连接的。

特点:
无向图的邻接矩阵是对称矩阵,n个顶点的无向图需要n*(n+1)/2个空间大小
有向图的邻接矩阵不一定对称,n个顶点的有向图需要n²的存储空间
无向图中第i行的非零元素的个数为顶点Vi的度
有向图中第i行的非零元素的个数为顶点 Vi 的出度,第i列的非零元素的个数为顶点 Vi 的入度
无向存储:
在这里插入图片描述

有向存储:
在这里插入图片描述

网络存储:
在这里插入图片描述

2.邻接表

为图G中的每一个顶点建立一个单链表,每条链表的结点元素为与该顶点连接的顶点。
特点
无向图顶点 Vi 的度为第 i 个单链表中的结点数
无向图中
顶点 Vi 的出度为第 i 个单链表中的结点个数
顶点 Vi 的入度为全部单链表中连接点域值是 i 的结点个数
逆邻接表:有向图中对每个结点建立以 Vi 为头的弧的单链表

在这里插入图片描述

3. 十字链表

可以看成是有向图的邻接表和逆邻接表结合起来的一种链表
在这里插入图片描述

图的遍历

在这里插入图片描述
在这里插入图片描述

广度优先遍历和深度优先遍历不唯一有多种方式,上图只是列举了几种

图的最小生成树

1. 普里姆(Prim)算法

在这里插入图片描述

第一步:选取出发点(任意选)a,并连接与a点最小距离的点c
在这里插入图片描述

第二步:将a和c看为一个整体,选择与a连接和c连接最小距离的点b
在这里插入图片描述

第三步:将a,b和c看为一个整体,选择与a连接,b连接和c连接最小距离的点d
在这里插入图片描述

第四步:
在这里插入图片描述

第五步:

在这里插入图片描述

  1. 克鲁斯卡尔(Kruskal)算法
    在这里插入图片描述

第一步:寻找最小边
在这里插入图片描述

第二步:寻找第二小的边
在这里插入图片描述

第三步:寻找第三小的边
在这里插入图片描述

第四步:寻找第四小的边,构成回路放弃
在这里插入图片描述

第五步:寻找下一个,并连接最后一个
在这里插入图片描述

拓扑排序与关键路径

拓扑排序

在这里插入图片描述

第一步:删除1或2输出(每次找寻入度为0的顶点,删除该顶点的入度)
在这里插入图片描述

第二步:删除2或3以及对应边

在这里插入图片描述

第三步:删除3或者4以及对应边
在这里插入图片描述

第四步:重复以上规则步骤
在这里插入图片描述

顺序:1 2 4 3 6 5 7 9(不唯一)
在这里插入图片描述

其中1,2的顺序可以随意。3,4的顺序可以随意。5,6的顺序可以随意。

关键路径

关键路劲也就是最长路径(一个项目的周期时间也就是最长路径)

在这里插入图片描述

顶点j的最早发生时间:从源点到顶点j的最长路径,记作Ve(j)。
活动ai最早开始时间:Ve(j)是以顶点j为起点的出边所表示的活动ai的最早开始时间,记作e(i)。
顶点j的最迟发生时间:在不推迟工程完成的前提下,一个事件j允许最迟发生的时间,记作Vi(j)。
活动ai最迟开始时间:Vi(j)-(ai所需的时间),就是活动ai最迟开始时间,j是ai活动的终点,记作I(i)

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桀骜浮沉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值