资源简介
最小生成树的源代码,不需要修改,可直接使用,多加支持,谢谢
代码片段和文件信息
#include “DS.h“
#include “ALGraph.h“
/*查找顶点v在邻接表存储法中的下标*/
int LocateVex1(ALGraph G char v)
{
int i;
for(i = 0; i < G.vexnum; i++)
if(G.vertices[i].data == v)
return i; /*找到顶点返回下标*/
return -1;
}
/*在邻接表中插入顶点v的邻接点w*/
int InsertList1(ALGraph &G int i int j)
{
ArcNode *p;
if(i==-1||j==-1||i==j)
return ERROR;
p=(ArcNode *)malloc(sizeof(ArcNode));
p->adjvex=j; /*插入邻接点*/
p->nextarc=NULL;
if(!G.vertices[i].firstarc)
G.vertices[i].firstarc=p; /*头插法*/
else
{
p->nextarc=G.vertices[i].firstarc->nextarc;
G.vertices[i].firstarc->nextarc=p;
}
return 1;
}
/*请写出有向带权图的邻接表的生成函数*/
int CreateDN1(ALGraph &G)
{
int i j kw;
char v1 v2;
printf(“请输入有向图G的顶点数和边数:“);
scanf(“%d %d“ &G.vexnum &G.arcnum);
printf(“请输入%d个顶点名字(以空格区分):“ G.vexnum);
for(i = 0; i < G.vexnum; i++)
{
scanf(“ %c“ &G.vertices[i].data); /*请注意输入格式*/
G.vertices[i].firstarc = NULL; /*邻接表初始化为空*/
}
for(k = 1; k <= G.arcnum; k++)
{
printf(“请输入第%d条边的两个顶点(以字符表示,字符间以空格区分)和权值:“ k);
scanf(“ %c %c %d“ &v1 &v2&w); /*请注意输入格式*/
i = LocateVex1(G v1); /*确定v1和v2的下标*/
j = LocateVex1(G v2);
InsertList1(G i j); /*生成各自的邻接表(记录权值)*/
}
return OK;
}
/*查找顶点v在邻接矩阵存储法中的下标*/
int LocateVex(MGraph G char v)
{
int i;
for(i = 0; i < G.vexnum; i++)
if(G.vexs[i] == v)
return i;
return -1;
}
/*请写出有向带权图的邻接矩阵的生成函数*/
Status CreateDN(MGraph &G)
{
int i j k value;
char v1 v2;
printf(“请输入图G的顶点数和边数:“);
scanf(“%d %d“ &G.vexnum &G.arcnum);
printf(“请输入%d个顶点名字(以空格区分):“ G.vexnum);
for(i = 0; i < G.vexnum; i++)
scanf(“ %c“ &G.vexs[i]); /*请注意输入格式*/
for(i = 0; i < G.vexnum; i++)
for(j = 0; j < G.vexnum; j++)
G.arcs[i][j] = MAX;
for(k = 1; k <= G.arcnum; k++)
{
printf(“请输入第%d条边的两个顶点(以字符表示,字符间以空格区分)及权值:“ k);
scanf(“ %c %c %d“ &v1 &v2 &value); /*请注意输入格式*/
i = LocateVex(G v1); /*确定v1和v2的下标*/
j = LocateVex(G v2);
if(i >= 0 && j >= 0) /*修改邻接矩阵的信息*/
G.arcs[i][j] = value;
}
return OK;
}
/*在邻接表中插入顶点v的邻接点w*/
int InsertList(ALGraph &G int i int j)
{
ArcNode *p;
if(i==-1||j==-1||i==j)
return ERROR;
p=(ArcNode *)malloc(sizeof(ArcNode));
p->adjvex=j; /*插入邻接点*/
p->nextarc=NULL;
if(!G.vertices[i].firstarc)
G.vertices[i].firstarc=p; /*头插法*/
else
{
p->nextarc=G.vertices[i].firstarc->nextarc;
G.vertices[i].firstarc->nextarc=p;
}
return 1;
}
/*键盘输入数据,分别建立一个有向图的邻接表和一个无向图的邻接矩阵。
(2)输出该邻接表和邻接矩阵。
(3)以有向图的邻接表为基础输出它的拓扑排序序列。
(4)以无向图的邻接矩阵为基础实现最小生成树的PRIM算法。
(5)以有向图的邻接矩阵为基础实现Dijkstra算法输出单源点到其它顶点的
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-02 21:48 minTree\
文件 744 2018-06-24 15:56 minTree\ALGraph.h
目录 0 2018-07-02 21:48 minTree\bin\
目录 0 2018-07-02 21:48 minTree\bin\Debug\
文件 39910 2018-06-24 16:12 minTree\bin\Debug\minTree.exe
文件 281 2018-06-24 15:42 minTree\DS.h
文件 8905 2018-06-24 16:06 minTree\main.cpp
文件 336 2018-06-02 14:56 minTree\MGraph.h
文件 1262 2018-06-02 16:13 minTree\minTree.cbp
文件 1111 2018-06-24 16:12 minTree\minTree.depend
文件 740 2018-06-24 16:23 minTree\minTree.layout
目录 0 2018-07-02 21:48 minTree\obj\
目录 0 2018-07-02 21:48 minTree\obj\Debug\
文件 13971 2018-06-24 16:12 minTree\obj\Debug\main.o
文件 3836 2018-06-24 16:12 minTree\obj\Debug\SqStack.o
文件 1060 2018-06-02 15:29 minTree\SqStack.cpp
文件 539 2018-06-24 15:57 minTree\SqStack.h
- 上一篇:SFF-8472协议中文
- 下一篇:《八路彩灯控制电路》
相关资源
- MPEG2标准的编解码器
- 电梯模拟 用C写的 很好的一个图形化
- 江苏大学885程序设计编程题答案
- gmp-6.1.2静态库-已编译
- C数据结构最小生成树的构造
- Keil uVision4 STC库文件
- C51与ADXL345通信外加上位机显示程序
- GPS数据解析程序原创
- 校运动会管理系统.zip
- 教师信息和学生成绩管理系统
- ADXL345模块 51程序
- 最小生成树实验报告
- 单片机频率计数器
- 编译原理课程设计:基于表达式的计
- lzw压缩与解压
- PID C 语言算法DSP2812PWM
- 最小生成树算法,用数据结构实现
- 班级档案管理系统
- C 程序设计学生宿舍管理系统
- TDC-GP2激光测距应用
- XX管理系统
- 中南民大数据结构-八皇后问题含实验
- 电磁环岛相关资料.zip
- 人机交互实验-命令行菜单界面
- 中缀表达式求值
- 基于DSP的语音录放实验程序
- 一个随笔画程序
- 标准C实现FTP上传功能
- 中南大学单片机课设 密码锁
- 交通灯控制系统
评论
共有 条评论