资源简介
C语言,数据结构作业 用普里姆(Prim)算法构造最小生成树

代码片段和文件信息
#include
#define INFINITY INT_MAX
#define MAX_VERTEX_NUM 20
enum GraphKind{DGDNUDGUDN}; //图的类型
typedef struct
{
int weight; //权值
}ArcCellAdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 二维数组
typedef struct
{
char vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnumarcnum;
GraphKind kind;
}Graph;
int LocateVex(Graph Gchar u)
{
for(int i=0;i if(G.vexs[i]==u)
return i;
return -1;
}
void CreateUDN(Graph &G)
{
int ijk;
int weight;
char vavb;
printf(“请输入无向图G的顶点数边数\n“);
scanf(“%d%d“&G.vexnum&G.arcnum);
getchar();
printf(“请输入 %d 个顶点的值:\n“G.vexnum);
for(i=0;i {
printf(“请输入第 %d 个顶点的值:\n“i+1);
scanf(“%c“&G.vexs[i]);
getchar();
}
for(i=0;i for(j=0;j {
if(i!=j)
G.arcs[i][j].weight=1000;
else
G.arcs[i][j].weight=0;
}
printf(“请输入 %d 条边的两个顶点及边权值:\n“G.arcnum);
for(k=0;k {
printf(“请输入第 %d 条边的两个顶点及权值:\n“k+1);
scanf(“%c%c%d“&va&vb&weight);
getchar();
i=LocateVex(Gva);
j=LocateVex(Gvb);
G.arcs[i][j].weight=G.arcs[j][i].weight=weight; // 无向图
}
G.kind=UDN;
}
int FirstAdjVex(Graph Gchar v)
{
int ik;
k=LocateVex(Gv);
for(i=0;i if(G.arcs[k][i].weight!=0)
return i;
return -1;
}
int NextAdjVex(Graph Gchar vchar w)
{
int ik1k2;
k1=LocateVex(Gv);
k2=LocateVex(Gw);
for(i=k2+1;i if(G.arcs[k1][i].weight!=0)
return i;
return -1;
}
void MiniSpanTree_P(Graph G char u)
{
struct
{
char adjvex; // U集中的顶点序号
int lowcost; // 边的权值
} closedge [MAX_VERTEX_NUM];
int ijknlm;
//用普里姆算法从顶点u出发构造网G的最小生成树
k = LocateVex (Gu);
for (j=0;j if (j!=k)
{
closedge[j].adjvex=u;
closedge[j].lowcost=G.arcs[k][j].weight;
}
closedge[k].lowcost = 0; // 初始,U={u}
for (m=1;m {
k=100;
for(i=0;i {
if((closedge[i].lowcost!=0)&&(k>closedge[i].lowcost))
{
k=closedge[i].lowcost;
l=i;
}
}
printf(“%c%c\n“closedge[l].adjvex G.vexs[l]);
closedge[l].lowcost = 0; // 第k顶点并入U集
for (j=0;j if (G.arcs[l][j].weight {
closedge[j].adjvex=G.vexs[l];
closedge[j].lowcost=G.arcs[l][j].weight;
}
}
}
void main()
{
Graph G;
CreateUDN(G);
MiniSpanTree_P(G‘1‘);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 184394 2008-11-30 22:27 Prime\Debug\Prime.exe
文件 353280 2008-11-30 22:27 Prime\Debug\Prime.pdb
文件 184393 2008-12-01 12:31 Prime\Debug\Test.exe
文件 9429 2008-12-01 12:31 Prime\Debug\Test.obj
文件 443392 2008-12-01 12:31 Prime\Debug\Test.pdb
文件 53248 2008-12-01 12:31 Prime\Debug\vc60.pdb
文件 3035 2008-12-01 12:31 Prime\Prime.cpp
文件 4210 2008-11-30 22:26 Prime\Prime.dsp
文件 535 2008-11-30 22:26 Prime\Prime.dsw
文件 25600 2008-11-30 22:36 Prime\Prime.ncb
文件 0 2008-11-30 22:36 Prime\Prime.plg
文件 3377 2008-12-01 12:29 Prime\Test.dsp
文件 533 2008-12-01 12:36 Prime\Test.dsw
文件 41984 2008-12-01 12:36 Prime\Test.ncb
文件 48640 2008-12-01 12:36 Prime\Test.opt
文件 736 2008-12-01 12:31 Prime\Test.plg
目录 0 2009-09-21 22:09 Prime\Debug
目录 0 2009-09-21 22:09 Prime
----------- --------- ---------- ----- ----
1356786 18
- 上一篇:C语言大作业 菜单驱动的学生成绩管理系统
- 下一篇:OpenGL纹理茶壶
相关资源
- 思维导图(C++ Primer Plus(第六版).
- C++_Primer_4th_习题答案
- C++ Primer by Stanley B. Lippman Josée La
- C++ Primer mobi
- 经典书籍《C++ Primer Plus 第6版 》 中文
- C++ Primer习题集 第5版.高清版
- c++ Primer199380
- primerc++书店项目
- C++primer第四版清晰版电子书及全部答
- c++-primer-plus(第六版)-编程练习答案
- C++ Primer中文第五版.zip
- C++ Primer 第五版 中文版+英文版+习题集
- C++ primer 第三版习题答案
- C++ Primer习题集 第5版-Stanley B. Lippman
- C++ Primer 第五版 中文版+英文版 pdf
- C++ Primer(5th)2017Edition 无水印pdf
- VC++2012版Prim算法最小生成树动态演示
- 数据结构 图的最小生成树 C++描述 使
- C++ Primer 3rd 英文版
- [C语言] C Primer Plus 第6版 (英文版)
- C++ Primer139296
- C++ Primer Plus英文版第六版.pdf
- 数据结构课程设计,最小生成树,采
- 免费:C++ Primer Plus 6th Edition英文版p
- C++ primer中文版
- C++Primer课后习题解答(第1~18章完整答
- c++ primer 4th answer完整版
- C++ Primer第四版中文高清非扫描版
- C++Primer中文版(第4版)
- C++Primer第四版书和代码(中文+英文双
评论
共有 条评论