以字母为顶点元素,无符号整数为权,用两个顺序表分别存储顶点集和边集(下标对),实现无向网的基本操作:输出、增添顶点、增添边、删除顶点、删除边、求度、深度优先搜索、广度优先搜索、求最小生成树、求最短路径。

    二、概要设计
    1.存储结构
            顶点                边        
n    e    v[0]    …    v[n-1]    …    a[0]    …    a[e-1]    …
            …        …                …                …
typedef struct{
    int n,e;/*顶点数和边数*/
    VertexType v[MAX];/*顶点表*/
    int a[MAX][3];/*边表*/
}Graph;
    2.基本操作
    ⑴void Puts(Graph G)——输出。
    ⑵void Gets(Graph &G)——输入。
    ⑶void InsertVex(Graph &G,VertexType v)——增添顶点。
    ⑷void InsertArc(Graph &G,VertexType v,VertexType w,int i)——增添边。
    ⑸void DeleteVex(Graph &G,VertexType v)——删除顶点。
    ⑹void DeleteArc(Graph &G,VertexType v,VertexType w)——删除边。
    ⑺Degree(Graph G,VertexType v,int &i)——求度。
    ⑻DFS(Graph G,VertexType v)——深度优先搜索。
    ⑼BFS(Graph G,VertexType v)——广度优先搜索。
    ⑽void Tree(Graph G,VertexType v,int &i)——求最小生成树。
    ⑾void Path(Graph G,VertexType v,VertexType w,int &i)——求最短路径。

    三、详细设计