📄 b3.cpp
字号:
# include <stdio.h>
# include <malloc.h>
# include "定义.h"
extern void MatToList(MGraph,ALGraph * &);
extern void DispMat(MGraph);
extern void DispAdj(ALGraph *);
extern void BFS(ALGraph * G,int v);
void main()
{
int i,j,k=0;
MGraph g;
ALGraph * G;
int A[MAXV][7]={
{0,1,0,0,0,1,0},
{1,0,1,0,0,0,0},
{0,1,0,1,0,0,1},
{0,0,1,0,1,0,0},
{0,0,0,1,0,0,0},
{1,0,0,0,0,0,1},
{0,0,1,0,0,1,0}};
g.vexnum=7;
for(i=0;i<g.vexnum;i++)
for(j=0;j<g.vexnum;j++)
g.edges[i][j]=A[i][j];
for(i=0;i<g.vexnum;i++) /*判断图的类型*/
for(j=0;j<g.vexnum;j++)
if(g.edges[i][j]!=g.edges[j][i])
{
printf("图G为有向图\n");
for(i=0;i<g.vexnum;i++) /*求出图的边数*/
for(j=0;j<g.vexnum;j++)
if(g.edges[i][j]!=0) k=k+1;
g.arcnum=k;
printf("图G有 %3d 条弧\n",g.arcnum);
goto next;
}
printf("图G为无向图\n");
for(i=0;i<g.vexnum;i++)
for(j=0;j<=i;j++) /*求出图的边数*/
if(g.edges[i][j]!=0) k=k+1;
g.arcnum=k;
printf("图G有 %3d 条边\n",g.arcnum);
next: printf("图G的邻接矩阵:\n");
DispMat(g);
G=(ALGraph * )malloc(sizeof(ALGraph));
printf("图G的邻接矩阵转换成邻接表:\n");
MatToList(g,G);
DispAdj(G);
printf("从顶点0开始的BFS:\n");
BFS(G,0);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -