博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
温习数据结构之图的邻接矩阵的相关操作2011.10.22
阅读量:6828 次
发布时间:2019-06-26

本文共 1557 字,大约阅读时间需要 5 分钟。

//图的数组(邻接矩阵)存储#define INFINITY INT_MAX  //用整型最大值#define MAX_VERTEX_NUM 20  //最大顶点个数typedef enum{DG,DN,AG,AN}GraphKind; //有向图,有向网,无向图,无向网typedef struct{	VRType adj;//顶点关系,对无权图,用1(是)或0(否)表示相邻否    InfoType *info;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedef struct{VertexType  vexs[MAX_VERTEX_NUM];//顶点向量AdjMatrix arcs; //邻接矩阵int vexnum,arcnum; //顶点数和弧数GraphKind kind;}MGraph;int LocateVex(MGraph G,VertexType u){//操作结果:若G中存在顶点u,则返回该顶点在图中位置;否则返回-1	int i;	for(i=0;i
Status CreateAN(MGraph *G) { /* 采用数组(邻接矩阵)表示法,构造无向网G。算法7.2 */   int i,j,k,w,IncInfo;   char s[MAX_INFO],*info;   VertexType va,vb;   printf("请输入无向网G的顶点数,边数,边是否含其它信息(是:1,否:0): ");   scanf("%d,%d,%d",&(*G).vexnum,&(*G).arcnum,&IncInfo);   printf("请输入%d个顶点的值(<%d个字符):\n",(*G).vexnum,MAX_NAME);   for(i=0;i<(*G).vexnum;++i) /* 构造顶点向量 */     scanf("%s",(*G).vexs[i]);   for(i=0;i<(*G).vexnum;++i) /* 初始化邻接矩阵 */     for(j=0;j<(*G).vexnum;++j)     {       (*G).arcs[i][j].adj=INFINITY; /* 网 */       (*G).arcs[i][j].info=NULL;     }   printf("请输入%d条边的顶点1 顶点2 权值(以空格作为间隔): \n",(*G).arcnum);   for(k=0;k<(*G).arcnum;++k)   {     scanf("%s%s%d%*c",va,vb,&w); /* %*c吃掉回车符 */     i=LocateVex(*G,va);     j=LocateVex(*G,vb);     (*G).arcs[i][j].adj=(*G).arcs[j][i].adj=w; /* 无向 */     if(IncInfo)     {       printf("请输入该边的相关信息(<%d个字符): ",MAX_INFO);       gets(s);       w=strlen(s);       if(w)       {         info=(char*)malloc((w+1)*sizeof(char));         strcpy(info,s);         (*G).arcs[i][j].info=(*G).arcs[j][i].info=info; /* 无向 */       }     }   }   (*G).kind=AN;   return OK; }

  

  

转载地址:http://ezykl.baihongyu.com/

你可能感兴趣的文章
javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
查看>>
最小二乘法多项式拟合的Java实现
查看>>
ubuntu下安装tomcat
查看>>
Excel两列查找重复值
查看>>
纯CSS实现Div高度根据自适应宽度(百分百调整)
查看>>
Azkaban学习之路 (一)Azkaban的基础介绍
查看>>
域名绑定云主机
查看>>
Linux: grep多个关键字“与”和“或”
查看>>
CAS5.2x单点登录(二)cas服务器连接数据库
查看>>
Android tess_two Android图片文字识别
查看>>
高负载微服务系统的诞生过程
查看>>
maven生命周期理解
查看>>
JS基础之传参(值传递、对象传递)
查看>>
(转)几种经典的hash算法
查看>>
Content Security Policy (CSP) 介绍
查看>>
DevExpress去除多国语言包
查看>>
numpy初始化
查看>>
移植gdb到海思3716板子的方法【转】
查看>>
为什么一些机器学习模型需要对数据进行归一化?
查看>>
MySQL主从1205报错【转】
查看>>