图的邻接矩阵

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CREATGRAPH(ga);
printf("\n无向图的邻接矩阵为:\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%2.0f ",ga->arcs[i][j]);
printf("\n");
}
}
六、运行界面
七、实验中遇到的问题及总结
本次课程设计“无向图的邻接矩阵存储结构”按照任务书相应的要求成功的完成了任务,由于本课程设计涉及任务明确,采用图的储存结构和算法比较方便处理数据的储存、查询、删除等操作。但图的操作比较难,容易出错并且不易改动。
五、代码:
#include <stdio.h>
#include <stdlib.h>
#define n 5
#define e 8
typedef char vextype;
typedef float adjtype;
//定义结构体
typedef struct
{
vextype vexs[n];
adjtype arcs[n][n];
邻接矩阵存储方法也就是数组存储方法,采用两个数组来完成对图的信息的存储。 假设一个图G拥有n个顶点,首先定义一个具有n个元素的一维数组V[0,1…n-1]用来存放各个顶点的数据信息,然后定义一个二维数组E[n][n],用来表示各个顶点的边的情况,这个二维数组就叫做邻接矩阵。 对于无向图,如果顶点i和顶点j之间存在边,则E[i][j]= E[j][i]=1,否则E[i][j]= E[j][i]=0;对于有向图,如果存在由顶点i到顶点j的边,则E[i][j] =1,否则E[i][j] =0。 对于网络,当顶点i和顶点j之间存在边且权值为Wij时,将E[i][j]赋值为Wij,否则将其赋值为无穷大,表示顶点i和j之间是不连接的。
}graph;
graph *ga;
//建立无向网络
void CREATGRAPH(graph *ga)
{
int i,j,k;
float w;
printf("请输入各个顶点:");
for(i=1;i<=n;i++)
ga->vexs[i]=getchar();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
ga->arcs[i][j]=0;
printf("\n请输入边(Vi,Vj)上的权:\n");
for(k=0;k<e;k++)
{
scanf("%d,%d,%f",&i,&j,&w);
ga->arcs[i][j]=w;
ga->arcs[j][i]=w;
}Байду номын сангаас
}
void main()
{
int i,j;
ga=(graph *)malloc(sizeof(graph));
八、参考文献
《数据结构——用C语言描述》
3 .加深理论知识,提高实际编程能力及程序调试能力。
二、实验环境:
Windows 8.1
Microsoft Visval c++ 6.0
三、实验内容及要求:
图是无向带权图,要求写一算法实现;
1)能从键盘上输入各条边和边上的权值;
2)构造图的邻接矩阵和顶点集;
3)输出图的各顶点和邻接矩阵;
四、概要设计:
上机实验报告
学院:计算机与信息技术学院
专业:计算机科学与技术(师范)
课程名称:数据结构
实验题目:图的邻接矩阵
班级序号:师范1班
学号:201421012731
学生姓名:邓雪
指导教师:杨红颖
完成时间:2015年12月25号
一、实验目的:
1﹒掌握图的基本概念和邻接矩阵存储结构。
2﹒掌握图的邻接矩阵存储结构的算法实现。
相关文档
最新文档