第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/8/26 20:38:57 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

时间复杂度: O(n2 )

(5)求最短路径,连通性判断 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<

}

}

( 以矩阵表示): \

更新迭代数组 Disk[][]

时间复杂度: O(n3)

3.

程序运行结果 ( 1)流程图:

初始化带权值的无向图

深度优先遍历,广度优先遍历

用普利姆算法求最小生成树

用克鲁斯卡尔算法求最小生成树

初始化带权值的有向图

用 Floyd 算法求任意两点间最短路径,并判断连通性

删除图

( 2)本程序所用的图

带权值的无向图

V0

9

6 V1

带权值的有向图

2 V2

V0

6 4

2

V2

3 9 V1

( 3)程序结果

4.

总结

(1)遇到的问题:私有数据访问权的问题,在编程时应该注意

( 2)心得体会:通过这次实验,我掌握了图基本操作的实现方法,了解最小生成树的思想和相关概念,了解最短路径的思想和相关概念等等。 ( 3)改进:

可以适当对某些步骤进行合并或省略,使程序更加简洁。

源代码:

#include using namespace std; const int MAXSIZE=20; const int MAX_EDGE=20; const int MAX_VALUE=1000; struct VEdge{

int fromV;// int endV;// int weight;//

};

VEdge EdgeList[MAX_EDGE]; template class MGraph { public:

MGraph(T a[],int n,int e); MGraph(T a[],int n,int e,int h); void DFS(int v); void BFS(int v);

void Prim(MGraph G);

void Kruskal(VEdge E[],int n,int e); int vNum,arcNum;

int arcs[MAXSIZE][MAXSIZE];// int arc[MAXSIZE][MAXSIZE];

private:

T vertex[MAXSIZE];

};

用于储存权值的数组

起始顶点

边的权值

终止顶点

template //

{

int i,j,k,l;

构造带权值的有向图

MGraph::MGraph(T a[],int n,int e,int h)

搜索更多关于: 北邮数据结构实验第二次实验图 的文档
北邮数据结构实验第二次实验图.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4289j0lpnn1ujtp7zqyg25ui718xfz018xv_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top