资源简介
C数据结构课的一个实验,用Prim算法和Kruskal算法实现最小生成树,

代码片段和文件信息
#include
#include “pro.h“
using namespace std;
/*
**建立一个顶点的存储数组。数组类型就是顶点的类型,
**n是顶点的个数,返回建立好的数组地址。
*/
elementtype* HeadArray1(int n) //用完后要free。
{
int i;
elementtype* q=(elementtype*)malloc(n*sizeof(elementtype));
cout<<“输入各个结点\n“;
for (i=0; i {
cin>>q[i];
}
return q;
}
/*
**建立一个邻居矩阵。参数是:n为顶点个数,m为边的个数
**q是定点的存储数组,即是上个函数的建立结果
*/
int* build_juzheng(int n int m elementtype* q) //注意要free
{
int* p=(int*)malloc(n*n*sizeof(int));
int ijflag k c;
elementtype x y;
for (i=0; i<=n; i++)
for (j=0; j<=n; j++)
p[i*n+j]=MAX;
cout<<“输入各个边及其权值:\n“;
for (k=0; k {
cin>>x>>y>>c;
flag=0;
for (i=1; i for (j=1; j if (i>=n || j>=n)flag=1;
if (!flag)
{
p[i*n+j]=c;
p[j*n+i]=c;
}
else
{
cout<<“不存在该边,重输:\n“;
k--;
}
}
return p;
}
/*
**建立邻接表的顶点数组,输入时顶点个数n和顶点数组head1
**返回建立的邻接表的顶点的结构数组。
*/
cell* HeadArray2(int n elementtype* head1) // 注意要free
{
cell* head=(cell*)malloc(n*sizeof(cell));
int i;
for (i=0; i {
head[i].data=head1[i];
head[i].next=NULL;
}
return head;
}
/*
**建立邻接表。参数是顶点个数n,边的个数m,顶点的结构数组head。
**即上个函数建立的数组
*/
void build_biao(int nint m cell* head) //n为顶点的个数m为边的个数,head为顶点结点数组首地址
{
int iflag j k c;
elementtype x y;
edgecell* p;
cout<<“输入边及其权值:\n“;
for (j=0; j {
cin>>x>>y>>c;
flag=0;
for (i=0; i for (k=0; k if (i>=n || k>=n)flag=1;
if (!flag)
{
p=new edgecell;
p->cost=c;
p->num=k;
p->next=head[i].next;
head[i].next=p;
p=new edgecell;
p->cost=c;
p->num=i;
p->next=head[k].next;
head[k].next=p;
}
else
{
cout<<“不存在该边,重输:\n“;
j--;
}
}
}
/*
**为了实现一种搜索算法对两个存储方式都好用,自己写了一个从
**邻接矩阵到邻接表的转换函数。自己只写了邻接表的访问我建立最
**小生成树。所以需要转换 。参数是head1顶点的数组,head2顶点的
**存储矩阵,n是顶点的个数
*/
cell* juzhengTObiao(elementtype* head1 int* head2 int n)//head1是存储顶点的字符数组,head2是邻接矩阵的首地址,n是顶点个数
{
cell* head=HeadArray2(n head1);
edgecell* p;
int i j;
for (i=0; i {
for (j=0; j {
if (head2[i*n+j])
{
p=new edgecell;
p->num=j;
p->next=head[i].next;
head[i].next=p;
}
}
}
return head;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3304 2009-05-27 07:06 shengchengshu\G_func.cpp
文件 1328 2009-05-26 20:40 shengchengshu\pro.h
文件 1180 2009-05-25 21:27 shengchengshu\shengchengshu.cbp
文件 904 2009-05-27 06:46 shengchengshu\main.cpp
文件 106 2009-05-26 10:05 shengchengshu\1.txt
文件 760 2009-06-02 21:18 shengchengshu\shengchengshu.layout
文件 65 2009-05-26 10:15 shengchengshu\2.txt
文件 1788 2009-05-27 07:06 shengchengshu\G_view.cpp
文件 118934 2009-05-27 06:46 shengchengshu\obj\Debug\main.o
文件 120980 2009-05-27 07:06 shengchengshu\obj\Debug\G_func.o
文件 119322 2009-05-27 07:06 shengchengshu\obj\Debug\G_view.o
文件 118000 2009-05-27 07:06 shengchengshu\obj\Debug\queue_func.o
文件 120529 2009-05-27 07:06 shengchengshu\obj\Debug\G_build.o
文件 3218 2009-05-27 07:06 shengchengshu\G_build.cpp
文件 602312 2009-05-27 07:06 shengchengshu\shengchengshu.exe
文件 77312 2009-05-28 14:36 shengchengshu\最小生成树的构造算法.doc
文件 528 2009-05-27 07:06 shengchengshu\shengchengshu.depend
文件 926 2009-05-27 07:06 shengchengshu\queue_func.cpp
目录 0 2009-05-25 19:02 shengchengshu\obj\Debug
目录 0 2009-05-25 19:02 shengchengshu\obj
目录 0 2009-05-25 19:00 shengchengshu
----------- --------- ---------- ----- ----
1291496 21
- 上一篇:AI项目-pacman
- 下一篇:RS232接口的FPGA程序设计VHDL
相关资源
- Power Electronic Converters Modeling and Contr
- CE修改器风叶人加强版
- Oracle+11gR2+RAC安装详解(HP-UX+11.31+ia6
- Oracle+GoldenGate运维完全手册
- STM32F103RC+ADC+DMA多通道采样LCD显示
- Modbus协议官方文档中、英文全
- pcbtemp电流计算软件
- I2C读写AT24C02 基于STM32F103 cube116540
- Scratch源码
- Microsoft Forms 2.0107770
- 实验三 消息中间件应用开发:Active
- WCE注入工具
- ModelGoon-4.4.1-site.zip
- AsyncTask文件控制暂停和继续,在状态
- Visio大全模具(含Cisco、IBM等常用拓扑
- 信号奇异点Lipschitz指数计算
- 基于STM32RCT6的步进电机驱动程序
- 酒店管理系统基于Qt Creator5)
- 用友NC开发API字典
- Navicat Premium 15汉化包.zip55438
- 登录注册界面.zip48872
- 条码字体barcode128
- Rational Rose Common破解文件
- res10_300x300_ssd_iter_140000.caffemodel与dep
- scratch 第1课 翻跟斗的小猫(入门)
- stm32f407上的两个can发送和接收例程
- Scrach 欢乐狙击手.sb2
- 04741计算机网络原理知识点整理.docx(
- Wolfram Mathematica 矩阵初等变换函数(
- pscad近海风电模型 Fortran语言
评论
共有 条评论