头文件
#ifndef TU_H_INCLUDED
#define TU_H_INCLUDED
#define MAXV 10
typedef char* InfoType;
typedef struct
{
int no;//顶点编号
InfoType info;//顶点其他信息
}VertexType;
typedef struct
{
int edgs[MAXV][MAXV];//邻接矩阵的边数组
int n,e;//顶点数,边数
VertexType vexs[MAXV];//存放顶点的信息
}MGraph;//完整的图邻接矩阵
void CreateMGraph(MGraph *&g);
void print(MGraph *&g);
#endif // TU_H_INCLUDED
#include<stdio.h>
#include<stdlib.h>
#include"Tu.h"
void CreateMGraph(MGraph *&g)
{
int i,j,n;
g=(MGraph*)malloc(sizeof(MGraph));
printf("请输入图的顶点数:\n");
scanf("%d",&n);
g->n=n;
for(i=0;i<n;i++)
{
g->vexs[i].no=i+1;
for(j=0;j<n;j++)
{
g->edgs[i][j]=0;
}
}
printf("请输入有关系的两个顶点:\n");
scanf("%d%d",&i,&j);
while(i&&j)//不存在编号为0的顶点,编号必须从1开始
{
g->edgs[i-1][j-1]=1;
//g->edgs[j-1][i-1]=1;
scanf("%d%d",&i,&j);
}
}
void print(MGraph *&g)
{
int i,j;
for(i=0;i<g->n;i++)
{
for(j=0;j<g->n;j++)
{
printf("%d ",g->edgs[i][j]);
}
printf("\n");
}
}
#include<stdio.h>
#include"Tu.h"
int main()
{
MGraph *g=NULL;
CreateMGraph(g);
print(g);
}