图的一些笔记

1.思维导图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHTjLg3m-1622463939764)(C:\Users\86152\Desktop\UHWO(I`U}A]
在这里插入图片描述

2.笔记

图的表示:

1.邻接矩阵

2.邻接链表

邻接矩阵和链表对比:

1.邻接矩阵由于没有相连的边也占有空间,因此存在浪费空间的问题,而邻接链表则比较合理地利用空间
2.邻接链表比较耗时,牺牲很大的时间来查找,因此比较耗时,而邻接矩阵法相比邻接链表法来说,时间复杂度低。

图的遍历:

图的遍历就是要找出图中所有的点,一般有以下两种方法:

(一)深度优先遍历:(Depth First Search, DFS)

基本思路:深度优先遍历图的方法是,从图中某顶点 v 出发

1.访问顶点 v
2.从 v 的未被访问的邻接点中选取一个顶点 w,从 w 出发进行深度优先遍历
3.重复上述两步,直至图中所有和v有路径相通的顶点都被访问到
伪码实现:

//伪码实现,类似于树的先序遍历
public void DFS(Vertex v){
    visited[v] = true;
    for(v 的每个邻接点 W){
	if(!visited[W]){
	    DFS(W);
	}
    }
}

(二)广度优先搜索:(Breadth First Search, BFS)
广度优先搜索,可以被形象地描述为 “浅尝辄止”,它也需要一个队列以保持遍历过的顶点顺序,以便按出队的顺序再去访问这些顶点的邻接顶点。

实现思路:

1.顶点 v 入队列
2.当队列非空时则继续执行,否则算法结束
3.出队列取得队头顶点 v;访问顶点 v 并标记顶点 v 已被访问
4.查找顶点 v 的第一个邻接顶点 col
5.若 v 的邻接顶点 col 未被访问过的,则 col 继续
6.查找顶点 v 的另一个新的邻接顶点 col,转到步骤 5 入队列,直到顶点 v 的所有未被访问过的邻接点处理完。转到步骤 2

个新的邻接顶点 col,转到步骤 5 入队列,直到顶点 v 的所有未被访问过的邻接点处理完。转到步骤 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值