1 / 10
文档名称:

图实验报告.doc

格式:doc   大小:63KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

图实验报告.doc

上传人:mh900965 2018/7/6 文件大小:63 KB

下载得到文件列表

图实验报告.doc

文档介绍

文档介绍:实验7 二叉树
学生姓名:蒋瑶瑶
实验日期:2011-12-13
实验任务:
(1)对图进行深度优先遍历或广度优先遍历;
(2)采用prime算法或Kruscal算法求解最小生成树.
实验源程序:
(1)对图进行深度优先遍历或广度优先遍历;
#define MAXV 10000
#define MAX_VERTEX_NUM 40
#define MAX 40
#include<>
#include<>
#include<>
//图的邻接表存储
typedef struct ArCell
{
int adj;
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct
{
char name[20];
}infotype;
typedef struct
{
infotype vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum,um;
}MGraph;
int LocateVex(MGraph *G,char* v)
{ int c=-1,i;
for(i=0;i<G->vexnum;i++)
if(strcmp(v,G->vexs[i].name)==0)
{c=i;break;}
return c;
}
//初始化图,接受用户输入
MGraph * CreatUDN(MGraph *G)
{
int i,j,k,w;
char v1[20],v2[20];
printf("请输入图的顶点数和弧数:");
scanf("%d,%d",&G->vexnum,&G->um);
printf("请依次输入图的顶点\n");
for(i=0;i<G->vexnum;i++){
printf("[%d] : ",i);
scanf("%s",G->vexs[i].name);
getchar();
}
for(i=0;i<G->vexnum;i++) //初始化邻接矩阵
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=MAXV;
for(k=0;k<G->um;k++) //构造邻接矩阵
{
printf("第%d条边:\n",k+1);
printf("起始结点:");
scanf("%s",v1);
printf("结束结点:");
scanf("%s",v2);
printf("边的权值:");
scanf("%d",&w);
i=LocateVex(G,v1);
j=LocateVex(G,v2); // 确定v1和v2在G中位置
if(i>=0&&j>=0){
G->arcs[i][j].adj=w;
G->arcs[j][i]=G->arcs[i][j]; //置<v1,v2>的对称弧<v2,v1>
}
}
return G;
}
int FirstAdjVex(MGrap