⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b3.cpp

📁 用于数据结构的课程设计,是利用邻接矩阵建立图的
💻 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 + -