算法和数据结构之Graphs

Graphs

一个图由一组点V组成,这些点称为顶点或节点,以及一组边E,也称为弧,每条边都包含一对顶点。

在这里插入图片描述

G=(V, E)
无向图:
V={v 1 , v 2 , v 3 , v 4 , v 5 , v 6 , v 7 }
E={ {v 1 , v 2 }, {v 1 , v 4 }, {v 2 , v 3 }, {v 4 , v 5 }, {v 4 , v 7 },{v 5 , v 6 }, {v 5 , v 7 } , {v 6 , v 7 }}

有向图:
E={(v 1 , v 2 ), (v 1 , v 4 ), (v 2 , v 3 ), (v 4 , v 1 ), {v 4 , v 5 }, (v 5 , v 7 ), (v 6 , v 5 ) , (v 7 , v 4 ), (v 7 , v 5 )}

计算机中表示图形的最佳方法取决于如何使用图形。

最明显的表示方式
——顶点数组和边数组

它们可能是最糟糕的表示方式。

两种常见的表示形式是:

  1. 邻接表 (Adjacency List)
  2. 邻接矩阵 (邻接矩阵)

Adjacency Lists

邻接表 L 是一个有长度 |V| 的数组(或哈希表),其中存储在 li 中的列表由顶点 i 直接到达的所有顶点组成。

在这里插入图片描述

Adjacency Matrix

邻接矩阵是一个|V|×|V|包含0和1的数组。

如果vi和vj之间没有边,则0存储在location (i, j)中。

如果vi和vj之间有一条边,则1存储在location (i, j)中。

如果G是一个无向图,则该数组是对称的,即 a(i, j)=a(j, i).

在这里插入图片描述
看以看到左边矩阵的横纵坐标分别表示v1-v7,有边为1,无边则为0.

Graph Search

这涉及到以某种系统的方式“探索”图,从顶点开始,然后通过从一个顶点到下一个顶点的边来访问其他可到达的顶点。

广度优先搜索(BFS)

我们的目标是列出从某个起始节点s∈V通过接下来的边可到达的所有顶点。

Breadth-First Search:

列出在0个移动中从s可到达的所有节点;

列出在一次移动中可以从s到达

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值