6-3 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6 分)

题目详情:

6-3 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6 分)

本题要求实现一个函数,输出无向图每个顶点的数据元素的值,以及每个顶点度的值。

函数接口定义:

函数接口为:
void degree(MGraph G);

G为采用邻接矩阵作为存储结构的无向图。

裁判测试程序样例:

#include 
#define MVNum 100                 //最大顶点数 
typedef struct{ 
  char vexs[MVNum];           //存放顶点的一维数组 
  int arcs[MVNum][MVNum];     //邻接矩阵 
  int vexnum,arcnum;          //图的当前顶点数和边数 
}MGraph; 
void degree(MGraph G);
void CreatMGraph(MGraph *G);/* 创建图 */
int main()
{
    MGraph G;
    CreatMGraph(&G);
    degree(G);
    return 0;
}
void CreatMGraph(MGraph *G)
{
    int i,j,k;
    scanf("%d%d",&G->vexnum,&G->arcnum);
    getchar();
    for(i=0;ivexnum;i++)
       scanf("%c",&G->vexs[i]);
    for(i=0;ivexnum;i++)
       for(j=0;jvexnum;j++)
            G->arcs[i][j]=0;
    for(k=0;karcnum;k++)
    {  
       scanf("%d%d",&i,&j);     
       G->arcs[i][j]=1; 
       G->arcs[j][i]=1; 
    }
}

/* 请在这里填写答案 */

输入样例:

例如无向图

6-3 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6 分)_第1张图片

第一行给出图的顶点数n和边数e。第二行给出n个字符,表示n个顶点的数据元素的值。后面是e行,给出每一条边的两个顶点编号。

4 5
ABCD
0 1
0 2
1 2
1 3
2 3

输出样例:

输出n个顶点的元素值,顶点的数据类型为字符型。以及各顶点的度值

A:2
B:3
C:3
D:2

答案代码:

void degree(MGraph G) 
{
    int i=0,j=0;
	for( i = 0; i < G.vexnum; i++)
    {
		int c = 0;
		for( j = 0; j < G.vexnum; j++)
        {
            if(G.arcs[j][i]!=0)
				c++;
        }
		printf("%c:%d\n",G.vexs[i],c);
	}
}

案例编译结果:

6-3 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6 分)_第2张图片

提交结果:

6-3 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6 分)_第3张图片

 

你可能感兴趣的:(pta,编程经典题目,数据结构)