1 南京工程学院 通信工程学院 实 验 报 告 课程名称 数 据 结 构 实验项目名称 图的建立及遍历算法的实现 实验学生班级 实验学生姓名 实验时间 2 0 1 4 . 5 . 2 9 实验地点 信 息 楼 C207 实验成绩评定 指导教师签字 年 月 日 2 一、实验目的: 1.掌握图的定义及图的存储结构。 2.掌握图的遍历算法 二、实验内容: 1.定义图的数据结构。 2.编写函数,用邻接表实现图的存储结构,求图的顶点的度数。 3.编写函数,输出图的遍历序列。 三、实验要求: 1.数据结构定义正确,程序编码规范。 2.撰写实验报告,写出程序运行结果。 3.分析算法,写出本次实验总结。 四、实现提示 1.数据结构定义 #define MAX_VERTEX_NUM 100 /*最大顶点数为 100*/ int visited[MAX_VERTEX_NUM]; typedef int VertexType; /*表结点*/ typedef struct ArcNode { int adjvex; struct ArcNode * nextarc; }ArcNode; /*头结点*/ typedef struct VNode { VertexType data; ArcNode * firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; 3 typedef struct { AdjList vertices; int vexnum,arcnum; }ALGraph; 2.图的存储(邻接表存储) void CreateALGraph(ALGraph &G) { int i,j,k; ArcNode *s; printf("input data:顶点数,边数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); printf("\nplease v data:"); for(i=0;i"); scanf("%d,%d",&i,&j); s=(ArcNode*)malloc(sizeof(ArcNode)); s->adjvex=j; s->nextarc=G.vertices[i].firstarc; G.vertices[i].firstarc=s; } } 4 五.关键算法 流程图 图的构造流程图 Y N Y N Y N 主程序流程图 Y N 开始 输入 vexnum, arcnum IncInfo i