QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 858|回复: 0
打印 上一主题 下一主题

[其他资源] 图的广度优先算法以及广度优先生成树

[复制链接]
字体大小: 正常 放大

850

主题

2

听众

2221

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-8-5 15:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
首先了解一下图的两种存储方式
邻接矩阵,如下为有向图的的邻接矩阵。对于A结点,可以通往B结点,在我们第一列的AB列就标识为1.对于C结点可以通往A结点,那么CA列就被标注为1。其他节点也一样。
7 Z: l- O9 J& n# u& B
邻接表,下图为有向图的邻接表矩阵,对于计算机而言,会对邻接表进行一个0开始的的排列。由这个排列的序号代表结点,对于A结点而言,它只有一条通道,指向BB的序号为2,所以就成了A->1。同理B指向CEF。也就对应的245" a2 [3 g2 |- T& }
$ ~! f. Q: z& a. T0 k$ d' _7 c
了解了图的存储方式,我们就可以讲解图的广度优先算法了
对于下面的图我们对它进行广度优先算法,首先对2顶点进行广度优先算法,在图中,我们很容易得到2结点连接16结点。那么计算机是如何寻找呢?答案是在右边两个图的存储结构中寻找,在邻接矩阵中2结点的第一个点为1,所以结果为2 ->1.接下来再找2行中的元素(找邻接矩阵中的1)发现第二个元素为6。结果自然就变成了2 -> 1 ->6。在邻接矩阵中我们发现2行中已经没有元素了。接下来到下一个过程。我们寻找1的指向结点,在邻接矩阵中我们发现1指向5、指向2。由于2已经在我们的序列中了,意味着我们已经找到了且没有其他指向。所以结果为2 -> 1 ->6 ->5。接下来在找6结点中的元素,6元素指向237.所以2已经被找到,所以结果为2 ->1 ->6 ->5 ->3->7。接下来寻找5结点。我们发现5结点指向1结点,而1节点已经被找到。所以我们就跳到3结点,3结点指向467。所以结果为2 ->1 ->6 ->5 ->3 ->7 ->4。接下来在7结点中寻找。7结点指向6348。同样由于序列中已经有了634结点。所以我们的结果为2 ->1 ->6 ->5 ->3 ->7 ->4 -> 8

9 d: F; p1 |; _( e' [
同理在邻接表中,也是这样的。但是由于邻接表的存储顺序并不一定会按照顺序存储。所以会出现2 - 6 - 1的现象。那么我们的结果就应该变为2 ->6 ->1 ->5 ->3 ->7 ->4 -> 8
广度优先生成树,是根据广度优先算法生成的。只要对图进行广度优先查询就一定可以得到一颗树,这棵树的名字就叫广度优先生成树。如下图所示:
, Q7 j0 D( v( p( _  H
+ w% v1 C' T) `7 `: T! ^) Q

. ]0 V8 P: Q1 t

图的广度优先算法以及广度优先生成树.docx

498.74 KB, 下载次数: 0, 下载积分: 体力 -2 点

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-6-20 19:01 , Processed in 0.350785 second(s), 54 queries .

回顶部