关于邻接矩阵的问题
#include<stdio.h>
#define max_size 10
typedef char vertexType;
//节点信息
typedef struct
{
int weight;
}ArcNode;
//基于邻接表的图
typedef struct
{
vertexType vexs[max_size];
ArcNode arcs[max_size][max_size];
int vexnum,arcnum;
}adjMatrix;
//查找位置
int LocateVertex(adjMatrix g,vertexType v)
{
int j = 0;
int k ;
for(k=0;k<g.vexnum;k++)
if(v==g.vexs[k])
return j;
else
j=k;
return j;
}
//创建图
void createGraph(adjMatrix g)
{
int i,j,k,weight;
vertexType v1,v2;
int vexnum,arcnum;
printf("输入顶点数目和弧的数:");
scanf("%d,%d",&vexnum,&arcnum);
g.vexnum = vexnum;
g.arcnum = arcnum;
//初始化邻接表
for(i=0;i<g.vexnum;i++)
for(j=0;j<g.arcnum;j++)
g.arcs[i][j].weight = 0;
printf("初始化顶点信息:");
for(i=0;i<g.vexnum;i++)
scanf("%c",&g.vexs[i]); //为什么只在这里读取了一次信息呢\
for(k=0;k<g.arcnum;k++)
{
scanf("%c,%c,%d",&v1,&v2,&weight);
i = LocateVertex(g,v1);
j = LocateVertex(g,v2);
g.arcs[i][j].weight = weight;
}
printf("%c",g.vexs[i]);
}
void main()
{
adjMatrix g;
createGraph(g);
}
浙公网安备 33010602011771号