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

    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