资源简介
PRIM算法,求最小生成树问题。PRIM算法,求最小生成树问题
代码片段和文件信息
#include
#include//Sleep()函数头文件
#define maxnum 100000
struct node{
node *rt*next;
int data;
int point;
int qz;//表示权值
};
typedef node array[1000];//候选边数组
typedef bool selectedpoint[1000];//记录结点是否被选择过
class graph
{
public:
graph(){t=NULL;}
void creat(node *&tint &n);
node *t;
};
void graph::creat(node *&tint &n)//邻接表法,建图
{
int x;
cin>>x;
if(x==0)
t=NULL;
else
{
t=new node;
t->data=x;
n++;
t->rt=NULL;
node *b=t;
int y;
cin>>y;
while(y!=0)
{ int z;
cin>>z;//z表示权值
node *c=new node;
c->data=y;
c->qz=z;
b->rt=c;
b=c;
b->rt=NULL;
cin>>y;
}
creat(t->nextn);
}
}
int firstadj(graph gint i)
{
node *a=g.t;
while(a->data!=i)
a=a->next;
if(a->rt!=NULL)
return a->rt->data;
else return 0;
}
int nextadj(graph gint iint w)
{
if(w==0)
return 0;
else
{
node *a=g.t;
while(a->data!=i)
a=a->next;
while(a->data!=w)
a=a->rt;
if(a->rt!=NULL)
return a->rt->data;
else
return 0;
}
}
int get_quanzhi(graph gint vint i)//返回结点v到结点i的权值
{ int e=v;
node *r=g.t;
while(r->data!=v)
r=r->next;
int w=firstadj(ge);
while(w!=0)
{
if(w==i)
return r->rt->qz;
else
{
w=nextadj(gew);
r=r->rt;
}
}
return maxnum;
}
void initial_minedges(graph &garray &minedgesint vint nselectedpoint &selected)//初始化候选边数组
{
int w;
int e=v;
cout<<“现在已选结点有:“< Sleep(1000);
selected[e]=true;
w=firstadj(ge);
while(w!=0)
{
minedges[w].point=e;
minedges[w].qz=get_quanzhi(gew);
Sleep(500);
cout<<“结点“< w=nextadj(gew);
}
}
int get_minedges(graph &garray &minedgesint nselectedpoint &selected)//在候选边数组中找到权值最短的一个邻接点
{
int mminjk;
mmin=maxnum;
for(j=1;j<=n;j++)
if(!selected[j] && minedges[j].qz {
k=j;
mmin=minedges[j].qz;
}
cout<<“所以应该选择的结点为“< return k;
}
void adjust(graph &garray &minedgesint kint nselectedpoint &selected)//调整候选边数组
{
int j;
int w=firstadj(gk);
selected[k]=true;
cout<<“现在已选结点有:“;
for(int qq=1;qq<=n;qq++)
if(selected[qq])
cout< cout< cout<<“现在的可选边有:“< Sleep(300);
for(int x=1;x<=n;x++)
{
if(selected[x])
{
int w1=firstadj(gx);
while(w1!=0)
{
if(!selected[w1])
cout<<“结点“< Sleep(300);
w1=nextadj(gxw1);
}
}
}
while(w!=0)
{
if(selected[w])
{
cout<<“结点“< w=nextadj(gkw);
}
else
{
for(j=1;j<=n;j++)
if(w==j && get_quanzhi(gkj) {
minedges[j].qz=get_quanzhi(gkj);
minedges[j].point=k;
}
w=nextadj(gkw);
}
}
}
void prim(graph &gint eint nselectedpoint &selected)
{
arra
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3848 2008-06-24 22:12 PRIM.cpp
----------- --------- ---------- ----- ----
3848 1
- 上一篇:文件夹变exe病毒专杀工具免费版.rar
- 下一篇:socket客户端源码
相关资源
- B′0,B-和B′s0衰减为J /ψ和
- Primocache3.0.2免PE重置第二版,最新支持
- 相对论夸克模型中隐身[qc] [q′c&
- Finite-time blowup for the 3-D primitive equat
- eprime程序设计说明书
- $$ \\ Xi _ {QQ ^ {\\ prime} q} \\ rightarrow \
- 引物设计Primer Premier 5 64位系统
- 基于最小生成树的全局优化立体匹配
- PrimeTime Workshop
- PrimoCache3.0.2+永久60天+免PE重置x86.x64
-
Introducing Spring fr
amework A Primer 无水印 - Cisco Prime Infrastructure配置手册
- C Primer Plus 6th edition英文版非扫描带书
- OpenNI 官方版适用于Windows 32位系统
- openni和primesense驱动
- Primer Premier 5.064位系统使用版本
- PrimeTime- PX user guide 2016
- 最小生成树.zip
- Primavera_P6(项目管理)基本操作手册
- Altera Crack_Quartus II 6.0-15.1_Windows版破解
- C Primer Plus第六版英文原版非扫描版
- 图论:最短路径+最小生成树+中心度计
- a semantic web primer 2nd
- 管道铺设最优方案
- PrimaStella机翻汉化补丁
- Active noise control primer主动噪声控制
- PrimeTime user guide
- prime time 教程
- synopsys primetime px user guide 2017
- primer premier 5.0 (64位32位通用)带中文
评论
共有 条评论