6-2 统计无向图中各顶点的度
本题要求实现一个函数,统计无向图中各顶点的度。
函数接口定义:
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 统计无向图中各顶点的度相关推荐
- 求无向图中某顶点的度 (有注释)
希望大家能结合题目认真分析一下代码,而不是简单的copy. 题目如下: 已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数.边的条数.顶点的信息和边的 ...
- C++求无向图中某顶点的度
已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数.边的条数.顶点的信息和边的组成等.求某顶点的度是多少? 输入描述 第一行输入无向图的顶点数和边的条 ...
- [连通块]leetcode2316:统计无向图中无法互相到达点对数(medium)
题目: 题解: 思路:用 dfs 或者 bfs 统计每个连通块的大小.由于每个连通块无法到达图中所有剩余的点,所以这样做乘法可以节约大量时间.但是我们的统计方法是统计的是有向边,而题目要求的是无向边的 ...
- 7-2 求顶点的度 (60 分)
设有一无向图,其顶点值为字符型并假设各值互不相等,采用邻接矩阵表示法存储表示.设计一个算法,输出该无向图中所有顶点的度. 输入格式: 有多组测试数据,每组数据的第一行为两个整数n和e,表示n个顶点和e ...
- 图论:具有至少两个顶点的简单无向图中一定存在度相同的结点
图论:具有至少两个顶点的简单无向图中一定存在度相同的结点 设有n个节点,则每个节点的度数只能取0,1,2,3,...,n-1, 因为如果某个点的度数取n,则一定存在自环或者重边. 下面分情况讨论: 1 ...
- 环的寻找:寻找无向图中所有存在的环-删除点法
此文讨论一个无向图中存在环的问题,在不管多复杂的连通图中寻找出所有的环,使用删除点的方法. 此外,这个版本的查找方法可以用于其他场景:找出无向图中所有的环的算法 结果能找到最小的环,或许要靠运气,输出 ...
- lisp遍历表中所有顶点_三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS...
1 引言 遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次. 在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则 ...
- 数据结构无向图顶点的度c语言_图-储存及基本操作
一.图的储存 邻接矩阵: 1.概念 有向图:(i,j)之间1为两个顶点之间有通路,没有为0. 无向图:同有向图,若(i,j)为1,则(j,i)也一定为1. 网:(i,j)的值表示顶点i到顶点j的边的权 ...
- _DataStructure_C_Impl:求图G中从顶点u到顶点v的一条简单路径
#pragma once #include<stdio.h> #include<stdlib.h> #define StackSize 100 typedef int Data ...
最新文章
- 什么是main方法?
- PyCairo 后端
- HBase集群安装部署(完全分布式)
- 光纤交换机是什么,光纤交换机的作用是什么?
- 从ncbi下载数据_如何从NCBI下载所有细菌组件
- 程序员能自己独立进行程序开发,为何要去公司上班呢?真相出来了!
- 谈跨平台C++动态连接库的实现
- localdatetime 获取天_LocalDateTime的一些用法
- Linux 设置用户权限只能写不能删除
- 眼图在通信系统中有什么意义_OA协同办公系统存在的意义是什么?协同OA的显着优势又在哪儿?...
- 安装与配置SVN版本控制器(汉化包)
- GAN代码实操(github代码实操)
- android读取sim卡,Android开发之获取SIM卡信息和手机号码
- 2014 计算机学科 排名,2014QS世界大学学科排名:计算机学科排行榜
- Print a rhombus (C++)
- Latex大括号花括号用法之多个子公式分别编号(a)(b)
- opencore 启动总是在win_单双硬盘装Windows/Mac双系统用OpenCore引导菜单添加Windows引导项...
- 服务器编译spark3.3.1源码支持CDH6.3.2
- win10网页找不到服务器dns,win10无法找到dns地址是怎么回事|win10无法找到dns地址如何解决...
- 黑五节日营销,Facebook广告投放指南
热门文章
- iOS开发,如何获取手机设备号
- Android中常见的像素单位
- 没有基础学平面设计从哪些开始学?学平面设计这几点有看好!
- Fedora 25 NTP服务器配置
- 8个数据分析方法,指导营销策略
- JAVA导入gpx文件_技术贴 | 如何将赛事路线导入 Garmin 设备(BaseCamp 篇)
- 第二章:SQL Server2019 数据库的基本使用之图形化界面操作
- 本地html网页不显示ico,关于网页:浏览器不请求favicon.ico的原因是什么?
- lchoose函数和lbeta函数--伽马函数与贝塔函数知识
- sublime下载安装+插件安装