成绩 辽宁工程技术大学上机实验报告
实验名称 图的遍历 院系 软件学院 专业 软件工程 班级 软升本14-1 姓名 学号 日期 2014.12.26 实验
目的 简述本次实验目的:
1.掌握图的邻接矩阵和邻接表存储思想及其算法的实现。
2.掌握图的深度、广度优先遍历算法思想及其程序实现。
3.掌握图的常见应用算法的思想及其程序实现。 实验
准备 你为本次实验做了哪些准备:
提前学习和掌握图的邻接表存储、建立、遍历及其应用。
能够使用C语言编写程序。 实验
进度 本次共有 5 个练习,完成 5 个。
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
实
验
总
结
日 本次实验的收获、体会、经验、问题和教训:
#include stdio.h
#include stdlib.h
#include malloc.h
#define M 20
/*定义图*/
typedef struct{
int V[M];
int R[M][M];
int vexnum;
}Graph;
typedef struct ArcBox{
int tail,head;
struct ArcBox *headlink;
struct ArcBox *taillink;
}ArcBox;//定义链元素
typedef struct VexNode{
int data;
ArcBox *firstin;
ArcBox *firstout;
}VexNode;//定义结点元素
typedef struct {
VexNode xlist[M];//表向量
int vexnum,arcnum;
}OlGraph;
/*创建图*/
void creatgraph(Graph *g,int n)
{
int i,j,r1,r2;
g-vexnum=n;
/*顶点用i表示*/
for(i=1;i=n;i++)
{
g-V[i]=i;
}
/*初始化R*/
for(i=1;i=n;i++)
for(j=1;j=n;j++)
{
g-R[i][j]=0;
}
/*输入R*/
printf(请输入图中边的两个顶点 (以0 0结束):\n);
scanf(%d%d,r1,r2);
while(r1!=0r2!=0)
{
g-R[r1][r2]=1;
g-R[r2][r1]=1;
scanf(%d%d,r1,r2);
}
}
/*打印图的邻接矩阵*/
void printgraph(Graph *g)
{
int i,j;
for(i=1;i=g-vexnum;i++)
{
for(j=1;j=g-vexnum;j++)
{
printf(%2d ,g-R[i][j]);
}
printf(\n);
}
}
/*全局变量:访问标
原创力文档

文档评论(0)