7.3 图的抽象数据类型

图作为一种数据结构,它的抽象数据类型带有自己特点,正因为它的复杂,运用广泛,使得不同的应用需要不同的运算集合,构成不同的抽象数据操作。我们这里就来看看图的基本操作。

  1. ADT 图(Graph)
  2. Data
  3. 顶点的有穷非空集合和边的集合。
  4. Operation
  5. CreateGraph(*G, V, VR): 按照顶点集V和边弧集VR的定义构造图G
  6. DestroyGraph(*G): G存在则销毁。
  7. LocateVex(G, u): 若图G中存在顶点u,则返回图中的位置。
  8. GetVex(G, v): 返回图G中顶点v的值。
  9. PutVex(G, v, value): 将图G中顶点v赋值value
  10. FirstAdjVex(G, *v): 返回顶点v的一个邻接顶点,若顶点在G中无邻接顶点返回空。
  11. NextAdjVex(G, v, *w): 返回顶点v相对于顶点w的下一个邻接顶点,
  12. wv的最后一个邻接点则返回“空”。
  13. InsertVex(*G, v): 在图G中增添新顶点v
  14. DeleteVex(*G, v): 删除图G中顶点v及其相关的弧。
  15. InsertArc(*G, v, w): 在图G中增添弧<v,w>,若G是无向图,还需要增添对称弧<w,v>。
  16. DeleteArc(*G, v, w): 在图G中删除弧<v,w>,若G是无向图,则还删除对称弧<w,v>。
  17. DFSTraverse(G): 对图G中进行深度优先遍历,在遍历过程对每个顶点调用。
  18. HFSTraverse(G): 对图G中进行广度优先遍历,在遍历过程对每个顶点调用。
  19. endADT