关于邻接矩阵的问题

#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);
}

posted on 2013-05-07 11:10  茶心过往  阅读(175)  评论(0)    收藏  举报