#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-07-06 20:14:38 发布
这篇博客通过C语言详细介绍了如何使用邻接矩阵和邻接表创建无向图,包括邻接矩阵的初始化、顶点位置的查找、弧的输入及邻接表的前插法插入。同时提供了代码示例,包括邻接矩阵和邻接表的创建及打印功能。
摘要由CSDN通过智能技术生成