数据结构和算法:从0到1-----图算法的基本概念

一、背景:

1、一笔画问题:手机解锁图案需一笔画出

在这里插入图片描述

2、柯尼斯堡七桥问题:

在这里插入图片描述

3、现实中的图:

1)计算机网络
在这里插入图片描述
2)交通:
在这里插入图片描述
3)社交网络
在这里插入图片描述

二、图的概念

1、图的定义、相邻与关联

1)图的定义
图可以表示为一个二元组G=<V,E>,其中

V表示非空顶点集,其元素称为顶点(Vertex)
E表示边集,其元素称为边(Edge)

e=(u,v)表示一条边,其中u∈V,v∈V,e∈E
2)有向图和无向图

无向图G1=<V1,E1>
有向图G2-<V2,E2>

在这里插入图片描述
在这里插入图片描述
3)相邻(Adjacent)
(u,v)连接的顶点u和v相邻

4)关联(Incident)
(u,v)和其连接的顶点u(或v)相互关联
在这里插入图片描述

2、顶点的度与图的度、握手定理

1)顶点的度(Degree of a Vertex)
顶点v的度deg(v)v关联的边数
2)图的度(Degree of a Graph)
图G=<V,E>的度,是图各顶点的度之和,deg(G)=Σdeg(v)
在这里插入图片描述
3)握手定理(Handshaking Lemma)
无向图的度是边数的两倍,deg(G)=2|E|
在这里插入图片描述
从而证明柯尼斯堡七桥问题没有解:
在这里插入图片描述
在这里插入图片描述

3、路径与环路

1)路径(Path)
🖤图中一个的顶点序列<v0,v1,…,vk>称为v0到vk的路径
🖤路径包含顶点v0,v1,…,vk和边(v0,v1),(v1,v2),…,(vk-1,vk)
🖤存在路径<v0,v1,…,vk>,则v0可达vk
🖤如果v0,v1,…,vk互不相同,则该路径是简单的
在这里插入图片描述
2)环路(Cycle)
🖤如果路径<v0,v1,…,vk>中v0=vk且至少包含一条边,则该路径构成环路
🖤如果v1,v2,…,vk互不相同,则该环路是简单的
3)有环图和无环图
有环图:图中存在环路
无环图:图中不存在环路
在这里插入图片描述

4、连通、连通分量

1)连通(Connectivity)
如果图的任意对顶点互相可达,则称该图是连通的,反之称为非连通
在这里插入图片描述

2)连通分量(Connected Components)
根据是否连通将顶点进行分组,相互可达的顶点集称为连通分量

在这里插入图片描述

5、子图、生成子图、树、森林

1)子图(Subgraph)
如果V’包含于V,E’包含于E,则称图G’=<V’,E’>是图G的一个子图

2)生成子图(Spanning Subgraph)
如果V'=V,E’包含于E,则称图G’=<V’,E’>是图G的一个生成子图
在这里插入图片描述
3)树(Tree)
连通、无环图T=<VT,ET>,树有|VT|-1条边
比如树有9个顶点,有9-1=8条边
4)森林(Forest)
一至多棵树组成的无环图
在这里插入图片描述

三、图的表示

1、邻接链表

🖤图G=<V,E>,其邻接链表由|V|条链表的数组构成
每个
🖤每个顶点有一条链表,包含所有与其相邻的顶点
在这里插入图片描述

2、邻接矩阵

图G=<V,E>的邻接矩阵由|V|x|V|的二维数组A构成,满足:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值