本题要求实现一个函数,统计无向图中各顶点的度。

函数接口定义:

void degree(MGraph Graph,int *num);

其中,Graph为采用 邻接矩阵作为存储结构的无向图,函数degree计算无向图中各顶点的度,并将相应结果存储在数组num中。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>
#define INFINITY 65535  //∞设为65535
#define MAXVERTEXNUM 100  //最大顶点数设为100 typedef struct GNode *PtrToGNode;
struct GNode{int Nv;   //顶点数 int Ne;   //边数 int G[MAXVERTEXNUM][MAXVERTEXNUM];  //邻接矩阵char Data[MAXVERTEXNUM];
};
typedef PtrToGNode MGraph; //以邻接矩阵存储的图类型void degree(MGraph Graph,int *num);MGraph BuildGraph()
{MGraph Graph;int i,j,k,weight;char a,b;Graph = (PtrToGNode)malloc(sizeof(struct GNode));scanf("%d %d",&Graph->Nv,&Graph->Ne);for(i = 0;i < Graph->Nv; i++){getchar(); scanf("%c",&Graph->Data[i]);  //输入顶点数据 }for(i = 0;i < Graph->Nv; i++)for(j = 0;j < Graph->Nv; j++)Graph->G[i][j] = INFINITY;  //初始化邻接矩阵/*此处输入边的信息*/for(k = 0;k < Graph->Ne ; k++){getchar();scanf("%c %c %d",&a,&b,&weight);for( i = 0; Graph->Data[i] != a;i++) ;   //找到顶点a在邻接矩阵中的下标 for( j = 0; Graph->Data[j] != b;j++) ;   //找到顶点b在邻接矩阵中的下标Graph->G[i][j] = weight;Graph->G[j][i] = weight;}return Graph; } int main()
{MGraph Graph1; int num[100]={0};  //num统计各顶点的度int i;/* 建立图的邻接矩阵 */Graph1 = BuildGraph();degree(Graph1,&num[0]);for(i = 0;i < Graph1->Nv; i++){printf("顶点%c的度为:%d",Graph1->Data[i],num[i]);printf("\n");}return 0;
}

输入样例:

5 8
A B C D E
A B 8
A E 4
B C 7
B D 12
B E 5
C D 6
C E 11
D E 3

输出样例:

顶点A的度为:2
顶点B的度为:4
顶点C的度为:3
顶点D的度为:3
顶点E的度为:4

代码如下:

void degree(MGraph Graph,int *num)
{int i,j;for(i = 0;i < Graph->Nv; i++){for(j = 0;j < Graph->Nv; j++){if(Graph->G[i][j]!=INFINITY)num[i]++;}}
}

6-2 统计无向图中各顶点的度相关推荐

  1. 求无向图中某顶点的度 (有注释)

    希望大家能结合题目认真分析一下代码,而不是简单的copy. 题目如下: 已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数.边的条数.顶点的信息和边的 ...

  2. C++求无向图中某顶点的度

    已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数.边的条数.顶点的信息和边的组成等.求某顶点的度是多少? 输入描述 第一行输入无向图的顶点数和边的条 ...

  3. [连通块]leetcode2316:统计无向图中无法互相到达点对数(medium)

    题目: 题解: 思路:用 dfs 或者 bfs 统计每个连通块的大小.由于每个连通块无法到达图中所有剩余的点,所以这样做乘法可以节约大量时间.但是我们的统计方法是统计的是有向边,而题目要求的是无向边的 ...

  4. 7-2 求顶点的度 (60 分)

    设有一无向图,其顶点值为字符型并假设各值互不相等,采用邻接矩阵表示法存储表示.设计一个算法,输出该无向图中所有顶点的度. 输入格式: 有多组测试数据,每组数据的第一行为两个整数n和e,表示n个顶点和e ...

  5. 图论:具有至少两个顶点的简单无向图中一定存在度相同的结点

    图论:具有至少两个顶点的简单无向图中一定存在度相同的结点 设有n个节点,则每个节点的度数只能取0,1,2,3,...,n-1, 因为如果某个点的度数取n,则一定存在自环或者重边. 下面分情况讨论: 1 ...

  6. 环的寻找:寻找无向图中所有存在的环-删除点法

    此文讨论一个无向图中存在环的问题,在不管多复杂的连通图中寻找出所有的环,使用删除点的方法. 此外,这个版本的查找方法可以用于其他场景:找出无向图中所有的环的算法 结果能找到最小的环,或许要靠运气,输出 ...

  7. lisp遍历表中所有顶点_三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS...

    1 引言   遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次.   在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则 ...

  8. 数据结构无向图顶点的度c语言_图-储存及基本操作

    一.图的储存 邻接矩阵: 1.概念 有向图:(i,j)之间1为两个顶点之间有通路,没有为0. 无向图:同有向图,若(i,j)为1,则(j,i)也一定为1. 网:(i,j)的值表示顶点i到顶点j的边的权 ...

  9. _DataStructure_C_Impl:求图G中从顶点u到顶点v的一条简单路径

    #pragma once #include<stdio.h> #include<stdlib.h> #define StackSize 100 typedef int Data ...

最新文章

  1. 什么是main方法?
  2. PyCairo 后端
  3. HBase集群安装部署(完全分布式)
  4. 光纤交换机是什么,光纤交换机的作用是什么?
  5. 从ncbi下载数据_如何从NCBI下载所有细菌组件
  6. 程序员能自己独立进行程序开发,为何要去公司上班呢?真相出来了!
  7. 谈跨平台C++动态连接库的实现
  8. localdatetime 获取天_LocalDateTime的一些用法
  9. Linux 设置用户权限只能写不能删除
  10. 眼图在通信系统中有什么意义_OA协同办公系统存在的意义是什么?协同OA的显着优势又在哪儿?...
  11. 安装与配置SVN版本控制器(汉化包)
  12. GAN代码实操(github代码实操)
  13. android读取sim卡,Android开发之获取SIM卡信息和手机号码
  14. 2014 计算机学科 排名,2014QS世界大学学科排名:计算机学科排行榜
  15. Print a rhombus (C++)
  16. Latex大括号花括号用法之多个子公式分别编号(a)(b)
  17. opencore 启动总是在win_单双硬盘装Windows/Mac双系统用OpenCore引导菜单添加Windows引导项...
  18. 服务器编译spark3.3.1源码支持CDH6.3.2
  19. win10网页找不到服务器dns,win10无法找到dns地址是怎么回事|win10无法找到dns地址如何解决...
  20. 黑五节日营销,Facebook广告投放指南

热门文章

  1. iOS开发,如何获取手机设备号
  2. Android中常见的像素单位
  3. 没有基础学平面设计从哪些开始学?学平面设计这几点有看好!
  4. Fedora 25 NTP服务器配置
  5. 8个数据分析方法,指导营销策略
  6. JAVA导入gpx文件_技术贴 | 如何将赛事路线导入 Garmin 设备(BaseCamp 篇)
  7. 第二章:SQL Server2019 数据库的基本使用之图形化界面操作
  8. 本地html网页不显示ico,关于网页:浏览器不请求favicon.ico的原因是什么?
  9. lchoose函数和lbeta函数--伽马函数与贝塔函数知识
  10. sublime下载安装+插件安装