图论总结

图论的应用

图论的应用:路线规划,网络路由路线,机器学习的基础

图的组成

概念:图是由顶点与边组成的集合
顶点 Vertex
边 Edge
权值 weight:一条边上的值
图的分类
无向图(undirected graph)
无向图(undirected graph)
有向图(directed graph)
有向图(directed graph)

在这里插入图片描述

无权图

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

概念
两点相邻:两个顶点直接有一条边相连
点的邻边:与点相邻的边
路径:从一个点到达另外一个点,路上经过的边,称之为路径
环:一个顶点通过一条路径可以回到自身,称之为环
自环边:通向自己的边
在这里插入图片描述

联通分量:图中相连的一个区域称之为一个连通分量,一个图可以有多个连通分量
在这里插入图片描述

联通图:一个图只有一个联通分量,我们称之为联通图
在这里插入图片描述

生成树:在一个联通图中删去任意条边,使得图中只剩下V-1条边(V为顶点数),并且依然保持图是联通图,则新生成的图称之为原图的生成树

度 degree :一个顶点的度就是与这个顶点相邻的边数
入度: 在有向图中通向自己边的个数入度
出度:在有向图中从自己出发的边的个数称为出度

图的表示

邻接矩阵:
在这里插入图片描述空间复杂度O(V^2)
时间复杂度:
构图:O(E)
查看两条边是否相连:O(1)
遍历一个点所有邻边: O(V)

邻接表:
在这里插入图片描述
空间复杂度O(VE)
时间复杂度:
构图:O(E)
查看两条边是否相连:O(E)
遍历一个点所有邻边: O(E)

构建邻接表

vector<int> g[100];
g[1].push_back(3);//从1到3直接有一条边相连
g[3].push_back(1);//如果是无向图,则另外一边也要连上

遍历邻接表,访问与v相邻的所有顶点:

for(int i=0;i<g[v].size();i++)
{
	cout << g[v][i];
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值