无向图:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include <string.h>
typedef struct graph
{
int vertex[100];
int edge[1000][1000];
//顶点数
int vn;
//边的数目
int en;
}graph;
#define INFINITY 65535
void creategraph4(graph* pg)
{
graph g=*pg;
scanf("%d%d",&g.vn,&g.en);
for(int i=0;i<g.vn;i++)
{
scanf("%d",&g.vertex[i]);
}
//将边初始化为infinity(∞)
for(int i=0;i<g.vn;i++)
{
for(int j=0;j<g.vn;j++)
{
g.edge[i][j]=INFINITY;
}
}
//输入要依赖的顶点得到传入的边,定向输入值
for(int i=0;i<g.en;i++)
{
int x;int y;
scanf("%d%d",&x,&y);
scanf("%d",&g.edge[x][y]);
//无向图的邻接矩阵是对称的
g.edge[y][x]=g.edge[x][y];
}
}
int main()
{
}
有向图
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include <string.h>
typedef struct graph
{
int vertex[100];
int edge[1000][1000];
//顶点数
int vn;
//边的数目
int en;
}graph;
#define INFINITY 65535
void creategraph5(graph* pg)
{
graph g=*pg;
scanf("%d%d",&g.vn,&g.en);
for(int i=0;i<g.vn;i++)
{
scanf("%d",&g.vertex[i]);
}
//将边初始化为infinity(∞)
for(int i=0;i<g.vn;i++)
{
for(int j=0;j<g.vn;j++)
{
g.edge[i][j]=INFINITY;
}
}
//输入要依赖的顶点得到传入的边,定向输入值
for(int i=0;i<g.en;i++)
{
int x;int y;
scanf("%d%d",&x,&y);
scanf("%d",&g.edge[x][y]);
// //无向图的邻接矩阵是对称的
// g.edge[y][x]=g.edge[x][y];
}
}
int main()
{
}