图的基础内容

本文介绍了图论中的基本概念,如连通分量、二分图、强连通及其相关性质,以及图的存储方法,特别是链式前向星数据结构。重点讲解了如何在图中添加边和关键术语如割点、桥、匹配和顶点覆盖的概念。
摘要由CSDN通过智能技术生成

基础概念

连通分量(connected component,CC):结点相互可达。 O ( N + M ) O(N+M) O(N+M)可以求出任意无向图的CC。

二分图/二部图(bipartite graph):节点由两个集合组成,且两个集合内部没有边的图。

强连通(strongly connected): 在一个有向图G里,设两个点 a,b,由a有一条路可以走到b,由b又有一条路可以走到a,我们就叫这两个顶点(a,b)强连通。

强连通图: 如果在一个有向图G中,每两个点都强连通,我们就叫这个图,强连通图。

强连通分量(strongly connected components):在一个有向图G中,有一个子图,这个子图每2个点都满足强连通,我们就叫这个子图叫做 强连通分量。

割点:一个结点称为割点(或者割顶)当且仅当去掉该节点极其相关的边之后的子图不连通。
:一条边称为桥(或者割边)当且仅当去掉该边之后的子图不连通。

匹配:匹配是指无向图的边集的一个子集,使得这个子集中的任意两条边没有公共顶点且不包含自环。其中边数最多的匹配称为最大匹配

顶点覆盖:顶点覆盖是指无向图的点集的一个子集,使得边集中的任意一条边都至少有一个端点在这个子集中。

基础操作

图的存储

掌握好图的存储方式:链式前向星
链式前向星-数据结构:基于边的五个数据结构

int head[10004],to[20004],w[20004],ne[20004],idx;
//head[]的大小随结点的数量;
//to[],w[],nxt[]的大小随边的数量(特别要注意!如果你双向存储边的话,to[],w[],nxt[]的大小应至少是边的数量*2)

链式前向星-加边函数:

inline void addedge(int x,int y,int z) //添加一条x-->y,权值为z的边
{
	w[++idx]=z;  // 必须++idx
	to[idx]=y;
	ne[idx]=head[x];
	head[x]=idx;
}
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值