图结构-学习(附自己写的源码)

多对多的数据结构-图结构

图结构的两个概念:

顶点:就像链表的节点树的子树 存数据的节点

:用来描述顶点之间的关系

如图:有6个顶点和7条边

如果边有方向叫有向图,没有则叫无向图(上面的就是)。

如图为有向图:

有向图:单行线

无向图

描述图的方式有很多种

这里搞2种:

临接表:链表

临接矩阵:数组

无向图临接表的表现如图

有向图临接表的表现如图

无向图临接矩阵如图:

是对称的,0是不可以,1是可以

有向图临接矩阵如图:

是对称的,0是不可以,1是可以,是从竖的到横的来看的,A能不能到B,A能不能到C。

特殊的图:

网图

不一样的是边有长度(权值):无限大表示自己(也可以用没有出现过的值),0表示到不了

临接表来表示的话,只需要加一个长度(权值)即可。

就比如A星寻路算法里面的f=g+h+w中的w,权值。

就比如地图是用图结构的,那么所谓的寻路算法就是遍历。

图的遍历

深度优先遍历(Depth First Search, 简称 DFS) :一路走到底,没有了在换其他周围节点

广度优先遍历(Breath First Search, 简称 BFS):先把周围遍历完,然后在向下一个搜索

而做这两个遍历,首先需要做的是两个函数:

找某个顶点的第一个相邻顶点

找某个顶点的第二个相邻顶点

源码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多方通行8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值