}
}
// 求最短路径 // 连通性判断
int dist[MAXSIZE][MAXSIZE]; int path[MAXSIZE][MAXSIZE]; template
void Floyd(MGraph
for(int i=0;i // 寻找最短路径 for(int j=0;j dist[i][j]=G.arcs[i][j]; if(dist[i][j]!=MAX_VALUE) path[i][j]=i; else path[i][j]=-1; } for(int k=0;k for(int i=0;i for(int j=0;j if(dist[i][k]+dist[k][j] dist[i][j]=dist[i][k]+dist[k][j]; path[i][j]=k; } cout<<\任意两点间的最短路径 ( 以矩阵表示): \ int l=1; for(int i=0;i for(int j=0;j cout< if(l>G.arcNum) {cout< } } void main() Disk[][] { int v,e; cout<<\请输入顶点数 (<21) 和边数 (<21) :\ cin>>v>>e; if(v>20||v<0||e<0||e>20) cout<<\输入错误! \ char ch[20]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r' ,'s','t'}; MGraph int s; cin>>s; cout<<\深度优先遍历 :\ A.DFS(s); cout< cout<<\请输入广度优先遍历的起始顶点下标: int k; cin>>k; cout<<\广度优先遍历: \ A.BFS(k); cout< cout<<\普利姆算法求最小生成树: A.Prim(A); cout<<\克鲁斯卡尔算法求最小生成树: VEdge EdgeList[MAX_EDGE]; GenSortEdge(A,EdgeList); A.Kruskal(EdgeList,v,e); // 初始化带权值的有向图 cout<<\构造带权值的有向图,请输入弧数: int h; cin>>h; MGraph } \ \ \ 请输入深度优先遍历的起始顶点下标: \ \
相关推荐: