怎么画邻接表?不用邻接矩阵也能画?

目录

一、有向图的邻接表

二、无向图的邻接表


一、有向图的邻接表

 最简单粗暴的方式就是把某个顶点发出的箭头指向的顶点全作为单个结点连接到此顶点的后面。结点数等于边数。

按正常思路的话,是一种递归遍历。

1.选一个点作为出发点。比如选一个v0。

2.从第一出发点按箭头指向任意一点作为第二出发点。

3.从第二出发点按箭头指向任意一点作为第三出发点。

以此类推,访问所有边。

需要注意的是如果一个点只被指,不指其他点,那就返回上一个出发点,从此出发点指向另一个点,如果这个出发点的边都被访问过,那就再返回上上一个出发点,直到所有边访问完毕,实际上这是一个回溯的过程。并且每条边只访问一次。

①我以v0作为第一出发点,指向v1,即v0->v1

②将v1作为第二出发点,指向v2,即v1->v2

③将v2作为第三出发点,发现v2不指向其他结点,那么回溯到v1

v1->v4

⑤v4也不指向其他结点,那么回溯到v1,v1->v2,v1->v4,都已经访问过,再回溯到v0

v0->v2

⑦v2不指向其他结点,回溯到v0

v0->v3

v3->v4

至此,所有边访问完毕。

二、无向图的邻接表

 同样,最简单粗暴的方式也是把某个顶点发出的箭头指向的顶点全作为单个结点连接到此顶点的后面。但是由于v0->v1,v1->v0,所以结点数是边数的两倍。

 这个的递归遍历思路的话放到一个无向图递归遍历程序里去。后续更新。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

脑子不好真君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值