以字母为顶点元素,无符号整数为权,用两个顺序表分别存储顶点集和边集(下标对),实现无向网的基本操作:输出、增添顶点、增添边、删除顶点、删除边、求度、深度优先搜索、广度优先搜索、求最小生成树、求最短路径。
二、概要设计
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)——求最短路径。
三、详细设计
四、测试结果