北邮数据结构实验第二次实验图

loading 分享 2026-8-9 下载文档

}

}

// 求最短路径 // 连通性判断

int dist[MAXSIZE][MAXSIZE]; int path[MAXSIZE][MAXSIZE]; template

void Floyd(MGraph G) {

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 A(ch,v,e); cout<<\

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 B(ch,v,e,h); Floyd(B);

}

\

\

\

请输入深度优先遍历的起始顶点下标: \

\


北邮数据结构实验第二次实验图.doc 将本文的Word文档下载到电脑
搜索更多关于: 北邮数据结构实验第二次实验图 的文档
相关推荐
相关阅读