#include <stdio.h>
#include <stdlib.h>
#define max_vertex_num 100 //最多顶点个数
typedef char VertexData;
typedef int AdjType ;
typedef int OtherInfo ;
typedef struct ArcNode
{
AdjType adj; //对于无权图 用1表示相邻 0表示不相邻 ;对于带权图,则为权值类型
OtherInfo info;
} ArcNode;
typedef struct
{
VertexData vertex[max_vertex_num]; //定义存储顶点的数组
ArcNode arcs[max_vertex_num][max_vertex_num]; //定义邻接矩阵
int vexnum,arcnum; //定义顶点的个数和边的个数
} AdjMatrix; //邻接矩阵的结构体
int LocateVertex(AdjMatrix *G,VertexData v) //求顶点的位置
{
int j=-1,k,i;
for(k=0;k<G->vexnum;k++)
if(G->vertex[k]==v)
{
j=k;
break;
}
return (j);
}
void CreateMatrix(AdjMatrix *G) //用邻接矩阵创建无向图
{
int i,k,j;
char v1,v2;
printf("用邻接矩阵来创建图 请输入图的顶点个数和弧数\n") ;
scanf("%d%d",&G->vexnum,&G->arcnum);
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=0; //初始化邻接矩阵
p
数据结构 图的建立 C语言版
最新推荐文章于 2024-04-30 21:36:36 发布