//图的邻接矩阵储存
#include
#include
#define maxsize 20
typedef struct{
//图的顶点和边的个数
int vtex,e;
//图的顶点的值
char dd[maxsize];
//图的边的顶点
int mtx[10][10];
}Mgraph;
//求给定顶点在数组中的位置
int locate(Mgraph *g,char v){
int i;
for(i=0;i
if(v==g->dd[i]);
return i;
}
return -1;
}
//初始化无向无权图
Mgraph creatUDF(){
Mgraph *g=( Mgraph *)malloc(sizeof(Mgraph));
printf("请输入图的顶点个数:");
scanf("%d",&g->vtex);
printf("请输入图的边的个数:");
scanf("%d",&g->e);
int i,j;
for(i=0;i
for(j=0;j
g->mtx[i][j]=0;
}
}
//给边
int m,n;
for(i=0;i
printf("请输入边为1的顶点:");
char v1,v2;
scanf("%c%c",&v1,&v2);
m=locate(g,v1);
n=locate(g,v2);
g->mtx[m][n]=g->mtx[n][m]=1;
}
}
//初始化有向无权图
Mgraph creatDF(){
Mgraph *g=( Mgraph *)malloc(sizeof(Mgraph));
printf("请输入图的顶点个数:");
scanf("%d",&g->vtex);
printf("请输入图的边的个数:");
scanf("%d",&g->e);
int i,j;
for(i=0;i
for(j=0;j
g->mtx[i][j]=0;
}
}
//给边
int m,n;
for(i=0;i
printf("请输入边为1的顶点:");
char v1,v2;
scanf("%c%c",&v1,&v2);
m=locate(g,v1);
n=locate(g,v2);
g->mtx[m][n]=1;
}
}
//初始化有向无权图
//初始化有向有权图
int main(){
int a;
printf("请选择要创建的图的类型(0为无向无权图,1为有向无权图,2为有向无权图,3为有向有权图)");
scanf("%d",&a);
switch(a):
{
case 0:
creatUDG();
break;
case 1:
creatDG();
break;
case 2:
creatUDG();
break;
case 3:
creatUDG();
break;
}
}
//图的邻接矩阵储存
#include
#include
#define maxsize 20
typedef struct{
//图的顶点和边的个数
int vtex,e;
//图的顶点的值
char dd[maxsize];
//图的边的顶点
int mtx[10][10];
}Mgraph;
//求给定顶点在数组中的位置
int locate(Mgraph *g,char v){
int i;
for(i=0;ivtex;i++){
if(v==g->dd[i]);
return i;
}
return -1;
}
//初始化无向无权图
Mgraph creatUDF(){
Mgraph *g=( Mgraph *)malloc(sizeof(Mgraph));
printf("请输入图的顶点个数:");
scanf("%d",&g->vtex);
printf("请输入图的边的个数:");
scanf("%d",&g->e);
int i,j;
for(i=0;ivtex;i++){
for(j=0;je;j++){
g->mtx[i][j]=0;
}
}
//给边
int m,n;
for(i=0;ie;i++){
printf("请输入边为1的顶点:");
char v1,v2;
scanf("%c%c",&v1,&v2);
m=locate(g,v1);
n=locate(g,v2);
g->mtx[m][n]=g->mtx[n][m]=1;
}
}
//初始化有向无权图
Mgraph creatDF(){
Mgraph *g=( Mgraph *)malloc(sizeof(Mgraph));
printf("请输入图的顶点个数:");
scanf("%d",&g->vtex);
printf("请输入图的边的个数:");
scanf("%d",&g->e);
int i,j;
for(i=0;ivtex;i++){
for(j=0;je;j++){
g->mtx[i][j]=0;
}
}
//给边
int m,n;
for(i=0;ie;i++){
printf("请输入边为1的顶点:");
char v1,v2;
scanf("%c%c",&v1,&v2);
m=locate(g,v1);
n=locate(g,v2);
g->mtx[m][n]=1;
}
}
//初始化有向无权图
//初始化有向有权图
int main(){
int a;
printf("请选择要创建的图的类型(0为无向无权图,1为有向无权图,2为有向无权图,3为有向有权图)");
scanf("%d",&a);
switch(a):
{
case 0:
creatUDG();
break;
case 1:
creatDG();
break;
case 2:
creatUDG();
break;
case 3:
creatUDG();
break;
}
}