| 本章将介绍数据结构常用的几个图的操作 |
| 每个操作的函数都附图说明。 |
| 项目 | Value |
|---|---|
| Adjacent(G,x,y) | 判断图G是否存在边<x, y>或(x,y) |
| Neighbors(G,x) | 列出图G中与结点x邻接的边 |
| 导管 | $1 |
| lnsertVertex(G,x) | 在图G中插入顶点x(扩充) |
| DeleteVertex(G,x) | 从图G中删除顶点x |
| AddEdge(G,x,y) | 若无向边(x y)或者有向边<x,y>不存在,则向图G中添加该边 |
| RemoveEdge(G,x,y) | 若无向边(x,y)或者有向边<x, y>存在,则在图G中删除该边 |
| FirstNeighbor(G,x) | 求图G中顶点X的第一个邻接点,若有则返回顶点号。若没有邻接点或图不存在x,则返回-1。 |
| NextNeighbor(G,x) | 假设图G中顶点y是顶点x的一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1。 |
| Get_edge_value(G,x,y) | 获取图G中边(x, y)或<x, y>对应的权值v。 |
| Set_edge_value(G,x,y) | 设置图G中边(x, y)或<x,y>对应的权值为v。 |
| Adjacent(G,x,y)判断图G是否存在边 |

邻接矩阵:0不存在,1存在
邻接表:搜索单链表
有向图:

| Neighbors(G,x)列出图G中与结点x邻接的边 |

有向图

| lnsertVertex(G,x)在图G中插入顶点x(扩充) |

| DeleteVertex(G,x)从图G中删除顶点x |

AddEdge(G,x,y)若无向边(x y)或者有向边 <x,y>不存在,则向图G中添加该边

RemoveEdge(G,x,y)若无向边(x,y)或者有向边<x, y>存在,则在图G中删除该边

FirstNeighbor(G,x)求图G中顶点X的第一个邻接点,若有则返回顶点号。若没有邻接点或图不存在x,则返回-1。
NextNeighbor(G,x)假设图G中顶点y是顶点x的一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1。

Get_edge_value(G,x,y)获取图G中边(x, y)或<x, y>对应的权值v。
Set_edge_value(G,x,y)设置图G中边(x, y)或<x,y>对应的权值为v。


| 【关注微信公众号一起来交流】 |
·

本文详细介绍了图的基本操作,包括邻接矩阵和邻接表的实现,向图中插入、删除顶点和边,以及获取和设置边的权值。通过实例演示了Adjacent、Neighbors、InsertVertex、DeleteVertex等关键函数的用法。
2003

被折叠的 条评论
为什么被折叠?



