图的基础知识梳理
图是由顶点集合和顶点之间的边组成的数学结构,图的阶是图中顶点的个数,下图是几种不同的图有向图无向图零图
图的分类图的分类是以边的不同来分为7类
(相关资料图)
有向图有向图指图中每边都是有方向的边的图叫有向图
无向图无向图指图中每一边都是没有方向的边的图叫无向图
完全图完全图指图中每一个顶点都与剩下的每个结点相连,这样的图叫完全图很美丽的图案呢!
稀疏图稀疏图指图中边的数量少(边数远小于n(n-1)/2或小于nlog(n)(n为边数))的图称为稀疏图
稠密图稠密图与稀疏图相对,指的是边的数量多(几乎接近完全图)的图成为稠密图
平凡图平凡图指图中的阶数为1的图是平凡图,阶数大于1的为非平凡图,阶数为0的是空图平凡图非平凡图空图(没错要相信自己的眼睛)
零图零图指只有顶点没有边的 图叫零图
顶点的度顶点的度的定义:一个顶点与其相连的边的条数叫做这个顶点的度上图中顶点5的度为
孤立点孤立点:度为0的顶点如上图中的1
叶节点叶节点:度为1的顶点如上图中的4
偶点偶点:度为偶数的顶点如上图中的2
奇点奇点:度为奇数的顶点如上图中的6
图的路径图的路径是指从一个顶点到另一个顶点所经过的顶点序列一条路径中,顶点不重复出现的路径叫简单路径除了起点和终点相同,其余不相同的称为回路或环
图的连通性无向图在无向图中,如果一个顶点u到另一个顶点v(u不等于v)存在路径,则称顶点u和顶点v是连通的若图中任意两个顶点都是连通的,那么称该图为连通图
有向图在有向图中,如果图中任意两个顶点u和v(u不等于v)存在路径(按其概念),那么称该图为强连通图若将其转化为无向图后,图中任意两个顶点都是连通的,那么称该图为弱连通图
带权图在上文讲的基础上,在边上加上有关边的数据(权值),形成带权图
图的储存图的储存主要分为2种,邻接矩阵、邻接表
邻接矩阵思路邻接矩阵是用一个二维数组adj来存储i和j的关系adj初始化为0
无向图在无向图中如果i,j连通那么adj[i][j]=adj[j][i]=1,否则adj[i][j]=adj[j][i]=0上图用邻接矩阵来存为:
下标 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 1 |
2 | 1 | 0 | 0 | 0 | 1 |
3 | 0 | 0 | 0 | 1 | 1 |
4 | 0 | 0 | 1 | 0 | 1 |
5 | 1 | 1 | 1 | 1 | 0 |
void join (int u,int v) {//u和v相通 adj[u][v] = 1; adj[v][u] = 1;}
有向图在有向图中如果i指向j那么adj[i][j]=1,如果n指向i那么adj[j][i]=1,否则adj[i][j]=adj[j][i]=0上图用邻接矩阵来存为:
下标 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 1 |
2 | 0 | 0 | 0 | 0 | 1 |
3 | 0 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 0 | 1 |
5 | 0 | 0 | 1 | 0 | 0 |
void join (int u,int v) {//从u指向v adj[u][v] = 1;}
时间、空间复杂度查询是否存在某条边:O(1)遍历一个点的所有出边:O(n)遍历整张图:O(n^2)空间复杂度:O(n^2)
优点最显著的优点是可以 O(1) 查询一条边是否存在。
邻接表思路v1 | 2 | 5 | null |
---|---|---|---|
v2 | 5 | null | |
v3 | 4 | null | |
v4 | 5 | null | |
v5 | 3 | null |
struct num {//from 起点,to终点,val权值,next就是指向下一个边int from,to,val,next;};num _v[maxm]; int head[maxn],cnt;// head数组和cnt就是记录与一个头结点相连的结点的个数void add (int u,int v,int w) { num e;e.from = u;e.to = v;e.val = w;e.to = head[u]; _v[cnt] = e; head[u] = cnt++; }
时间、空间复杂度查询是否存在 u 到 v 的边:O(d^+(u))(如果事先进行了排序就可以使用 二分查找 做到 O(\log(d^+(u))))遍历点 u 的所有出边:O(d^+(u))遍历整张图:O(n+m)空间复杂度:O(m)
优点适用于需要对一个点的所有出边进行排序的场合
欧拉路欧拉路的定义:对于一个图,如果按一笔画小游戏的规则画完,那么这个图是一个欧拉路,如果起点和终点相同,那么这被称为欧拉回路欧拉路欧拉回路
无向图实现思路1.使用邻接矩阵存储2.单独开数组du[i]记录结点i连边数3.单独开数组c记录欧拉路上的点
有向图实现思路思路和无向图实现差不多只是要把出度记为1,入度记为-1欧拉路存在时起点等于1,终点等于-1欧拉回路存在是所有点等于0
完结撒花欢迎大家留言小编蒟蒻一个,有什么问题请大佬不惜赐教Orz
上一篇:大巴黎官宣今夏首签!28岁国米王牌中卫自由身加盟,签字费2千万欧
下一篇:最后一页
图的基础知识梳理
**图的基础知识梳理**[toc] **图的定义**图是由顶点集合和顶点之间的
2023-07-27大巴黎官宣今夏首签!28岁国米王牌中卫自由身加盟,签字费2千万欧
北京时间7月6日,法甲豪门巴黎圣日耳曼俱乐部官方宣布,正式签下前国际
2023-07-27光遇日季节蜡烛在什么地方
游戏中有各种各样的策略你需要知道。只有知道了策略,才能快速取得游戏
2023-07-27盛夏经济|夜经济拉动:夜游升温,夜宵成首选社交方式
夏日夜晚的景区内,依然人头攒动。晚上10点,当你打开某本地生活App,
2023-07-27宜昌市有哪些高中开设了日语课程
宜昌市有哪些高中开设了日语课程,或即将要开设日语课程宜昌市城区开设
2023-07-27面向“银发族” 香港第八批银色债券保证息率升至5厘
(记者戴梦岚)香港特区政府14日公布在政府债券计划下的零售部分,推出第
2023-07-27第三届中国丹寨非遗周开幕
人民网丹寨7月23日电7月21日,第三届中国丹寨非遗周在贵州省黔东南苗族
2023-07-27“希望大家能够喜欢开幕式!” 成都大运会开幕式总导演陈维亚问候川网传媒网友
“希望大家能够喜欢开幕式!”成都大运会开幕式总导演陈维亚问候川网传
2023-07-27AMD锐龙5 7500F发布:性能超i5-13400,价格1239元
近日,AMD发布了备受瞩目的锐龙57500F处理器,其基准性能与英特尔i5-13
2023-07-272023下半年“交付潮”来袭!广州预计68盘迎交付!
编者按2023年已过半,广州楼市表现稳字当头,成交量稳中有涨,豪宅走出
2023-07-27