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

📄 fad.cpp

📁 带权图的邻接矩阵输出!图的邻接矩阵存储(数组表示)、简单输出。
💻 CPP
字号:
# include <stdio.h>
# include <stdlib.h>
# define MAX 20
typedef int VexType;
typedef  VexType Mgraph[MAX][MAX]; /* Mgraph是二维数组类型标识符 */
/* 函数原形声明*/
void creat_mg(Mgraph G);
void out_mg(Mgraph G);
Mgraph G1;                         /*  G1是邻接矩阵的二维数组名  */
int n,e;
/*  主函数 */
void main()
 { creat_mg(G1);     out_mg(G1);    printf("\n");
 }/* main */
/*  建立邻接矩阵  */
void creat_mg(Mgraph G)
{ int i,j,k,w;
  printf("\n  输入顶点数,边数 n,e="); scanf("%d%d", &n,&e);  /* 输入顶点数n,边数e */ 
  for(i=1; i<=n;i++)
	  for(j=1;j<=n;j++){ if(i==j) G[i][j]=0;  else G[i][j]=32767; }      
                      /* 如果是网,G[i][j]=0该为G[i][j]=32767(无穷)*/
  for(k=1;k<=e;k++)                           /* 组织边数的循环  */
     { printf("\n  输入边的两个顶点和权值vi,vj,w="); 
       scanf("%d%d%d", &i,&j,&w);          /* 输入一条边的两个顶点编号i,j */
       G[i][j]=w; G[j][i]=w;                    /* 无向图的邻接矩阵是对称矩阵 */          
       /* 如果是网,还要输入边的权值w,再让G[i][j]=w */
     }
 } /* creat_mg */
/* 邻接矩阵简单输出,为了检查输入是否正确 */ 
void out_mg(Mgraph G)
 { int i,j; 
   printf("\n邻接矩阵输出为:\n ");
   for(i=1; i<=n;i++)        /*  矩阵原样输出 */
     { printf("\n ");
       for(j=1;j<=n;j++) 
	   { if(G[i][j]==32767) printf("%5s","∞"); else printf("%5d",G[i][j]);}
     }
   /*  输出所存在的边 */
   for(i=1; i<=n;i++)
      for(j=1;j<=n;j++)
         if(G[i][j]!=32767&&G[i][j]!=0) 
		   printf("\n 存在边< %d,%d >",i,j);
     
 } /*  out_mg */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -