📄 建立图矩阵.cpp
字号:
#include <stdio.h>
#define MaxVertexNum 100 //最大顶点数,应由用户定义
typedef char VertexType; //顶点类型应由用户定义
typedef int EdgeType; //边上的权值类型应由用户定义
typedef struct {
VertexType vexs[MaxVertexNum]; //顶点表
EdgeType edges[MaxVertexNum][MaxVertexNum];
//邻接矩阵,可看作边表
int n,e; //图中当前的顶点数和边数
}MGraph;
void main()
{
void CreateMGraph(MGraph *G);
void PrintMGraph(MGraph *G);
MGraph G;
CreateMGraph(&G);
PrintMGraph(&G);
}
void CreateMGraph(MGraph *G)
{ //建立无向网的邻接矩阵表示
int i,j,k,w;
printf("请输出顶点数和边数:");
scanf("%d%d",&G->n,&G->e); //输入顶点数和边数
printf("请输出顶点信息:");
for(i=0;i<G->n;i++) //读入顶点信息,建立顶点表
while((G->vexs[i]=getchar())=='\n');
for(i=0;i<G->n;i++) printf("%c",G->vexs[i]);
for(i=0;i<G->n;i++)
for(j=0;j<G->n;j++)
G->edges[i][j]=0; //邻接矩阵初始化
for(k=0;k<G->e;k++) { //读入e条边,建立邻接矩阵
printf("\n请输出第%d边的起点、终点和权:",k+1);
scanf("%d%d%d",&i,&j,&w); //输入边(vi,vj)上的权w
G->edges[i][j]=w;
G->edges[j][i]=w;
}
}
//打印无向图的邻接矩阵
void PrintMGraph(MGraph *G)
{
int i,j;
printf("无向图的邻接矩阵为:\n");
for(i=0;i<G->n;i++)
{
for(j=0;j<G->n;j++)
printf("%d\t",G->edges[i][j]);
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -