博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
prim算法
阅读量:5264 次
发布时间:2019-06-14

本文共 1776 字,大约阅读时间需要 5 分钟。

算法部分

typedef struct edgedata//最小生成树的边信息{    int begin,end;//边起点,终点,长度    int length;}edge;void prim(Mgraph g,edge tree[M-1]){    edge temp;    int d,minpos,j,k,min,v,i;    //从第一个节点开始,所有两栖路径以第一个点为起点,长度为该两点长度    for(i=1;i<=g.n-1;i++)    {        tree[i-1].begin=0;        tree[i-1].end=i;        tree[i-1].length=g.edges[0][i];    }    for(k=0;k<=g.n-3;k++)//选取第k条两栖路径    {        //找到未选择两栖路径中的最短路径并记录位置        min=tree[k].length;        minpos=k;        for(j=k+1;j<=g.n-2;j++)            if(tree[j].length

邻接矩阵实现

#include
#include
#include
#define FINITY 50000#define M 20typedef char vertextype;typedef int edgetype;typedef struct{ vertextype vexs[M];//定点信息 edgetype edges[M][M];//邻接矩阵 int n,e;//顶点总数,边总数}Mgraph;void creat(Mgraph *g,char *s,int c){ int i,j,k,w; FILE *rf;//从文件输入图数据 rf=fopen(s,"r"); if(rf) { fscanf(rf,"%d%d",&g->n,&g->e);//读入顶点数,边数 for(i=0;i
n;i++) fscanf(rf,"%1s",&g->vexs[i]);//读入顶点值 for(i=0;i
n;i++)//初始化邻接矩阵 for(j=0;j<
n;j++)//注意:HTML上显示不出 实则为这条代码 for(j=0;j
n;j++)
if(i==j)            g->edges[i][j]=0;            else g->edges[i][j]=FINITY;        for(k=0;k
e;k++)//读入边 { fscanf(rf,"%d%d%d",&i,&j,&w); printf("%d %d %d\n",i,j,w); g->edges[i][j]=w; if(c==0)//如果是无向图则对应j,i相等 g->edges[j][i]=w; } fclose(rf); } else g->n=0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/Thereisnospon/p/4768509.html

你可能感兴趣的文章
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>