数据结构与算法编程题49

假设不带权有向图采用邻接表G存储,设计实现以下功能的算法。
(1)求出图中每个顶点的出度。
(2)求出图中出度为0的顶点数。
(3)求出图中每个顶点的入度。

#include <iostream>
using namespace std;#define MVnum 100
typedef string VertexType;typedef struct ArcNode
{int adjvex;struct ArcNode* nextarc;int weight;
}ArcNode;typedef struct VNode
{VertexType data;struct ArcNode* firstarc;
}VNode, VNodeList[MVnum];typedef struct
{VNodeList vertices;int vexnum;int edgenum;
}Graph;int locatevex(Graph G, VertexType v)
{for (int i = 0; i < G.vexnum; i++){if (G.vertices[i].data == v) return i;}return -1;
}void CreateDG(Graph& G)
{int i = 0, j = 0;int k = 0;cout << "请输入总顶点数和总边数:";cin >> G.vexnum >> G.edgenum;cout << "输入顶点:";for (i = 0; i < G.vexnum; i++){cin >> G.vertices[i].data;G.vertices[i].firstarc = NULL;}for (int k = 0; k < G.edgenum; k++){VertexType v1, v2;cout << "输入第" << k + 1 << "条边:";cin >> v1 >> v2;i = locatevex(G, v1);j = locatevex(G, v2);ArcNode* p1 = (ArcNode*)malloc(sizeof(ArcNode));if (p1 == NULL){cout << "内存分配失败" << endl;exit(0);}p1->adjvex = j;p1->nextarc = G.vertices[i].firstarc;G.vertices[i].firstarc = p1;}
}/*--------将邻接表输出在控制台上---------*/
void PrintfUGraph(Graph G) 
{ArcNode* p = NULL;for (int i = 0; i < G.vexnum; i++){cout << G.vertices[i].data << ":";p = G.vertices[i].firstarc;while (p != NULL){cout << p->adjvex << "  ";p = p->nextarc;}cout << endl;}
}//-----------------------核心代码-----------------------//
void count_chudu(Graph G)
{	int count = 0;ArcNode* p = NULL;for (int i = 0; i < G.vexnum; i++){count = 0;p = G.vertices[i].firstarc;while (p != NULL){count++;p = p->nextarc;}cout << G.vertices[i].data<< "顶点的出度为" << count << "个"<<endl;}
}int count_chudu_zero(Graph G)
{int count = 0;ArcNode* p = NULL;for (int i = 0; i < G.vexnum; i++){p = G.vertices[i].firstarc;if (p == NULL)count++;}return count;
}void count_rudu(Graph G)
{int count = 0;ArcNode* p = NULL;for (int i = 0; i < G.vexnum; i++){count = 0; //clear count every loopfor (int j = 0; j < G.vexnum; j++){p = G.vertices[j].firstarc;while (p != NULL){if (p->adjvex == i)count++;p = p->nextarc;}}cout << G.vertices[i].data << "的入度的数量为:" << count << endl;}
}
//-----------------------核心代码-----------------------//
// 假设不带权有向图采用邻接表G存储,设计实现以下功能的算法。
//(1)求出图中每个顶点的出度。
//(2)求出图中出度为0的顶点数。
//(3) 求出图中每个顶点的入度。
/*
5 6
v1 v2 v3 v4 v5
v1 v2
v1 v4
v3 v4
v2 v3
v3 v5
v2 v5
*/
int main(void)
{Graph G;CreateDG(G);PrintfUGraph(G);cout << "---------------求出图中每个顶点的出度---------------" << endl;count_chudu(G);cout << "---------------求出图中出度为0的顶点数---------------" << endl;cout<<"求出图中出度为0的顶点数:"<<count_chudu_zero(G)<<endl;cout << "---------------求出图中每个顶点的入度---------------" << endl;count_rudu(G);return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

私域最全养号攻略---微信

微信号的使用规则&#xff1a; 注册新微信、微信实名认证、主动添加好友、面对面建群、被动添加好友、进群限制、朋友圈限制、好友上限 微信权重加分规则&#xff1a; 基础信息是否完整、注册时间、微信使用行为、 微信权重扣分规则&#xff1a; 使用的环境是否正常、部分行为会…

基于python的微博情感分析与文本分类系统的设计与实现

完整下载&#xff1a;基于python的微博情感分析与文本分类系统的设计与实现.docx 基于python的微博情感分析与文本分类系统的设计与实现 "Design and Implementation of a Python-based Weibo Sentiment Analysis and Text Classification System" 目录 目录 2 摘要 …

centos 源码编译gcc10.2

前言 随着时代进步&#xff0c;很多编译需要c14等更高的编译环境。 安装包版本必选说明gcc10.2.0是gcc g cgmp6.2.0 是用于高精度整数运算的开源库mpfr4.1.0是用于高精度浮点数运算的开源库mpc1.2.1是用于高精度复数运算的开源库isl0.22是用于处理整数集合和多维多项式的开源…

Michael.W基于Foundry精读Openzeppelin第40期——ERC20Burnable.sol

Michael.W基于Foundry精读Openzeppelin第40期——ERC20Burnable.sol 0. 版本0.1 ERC20Burnable.sol 1. 目标合约2. 代码精读2.1 burn(uint256 amount)2.2 burnFrom(address account, uint256 amount) 0. 版本 [openzeppelin]&#xff1a;v4.8.3&#xff0c;[forge-std]&#x…

1.pipenv创建pyqt5虚拟环境

pipenv创建pyqt5虚拟环境 一、安装pipenv ​ cmd输入指令&#xff1a; pip install pipenv二、安装虚拟环境 cmd进入我要创建环境的目录下 我使用以下命令在当前目录下创建虚拟环境&#xff1a; pipenv --python 3.8创建一个基于Python 3.8的虚拟环境&#xff0c;并生成一个…

华为鸿蒙开发——开发及引用静态共享包(HAR)、应用配置文件

文章目录 简述一、创建HAR模块二、编译HAR模块三、应用配置文件&#xff08;Stage模型&#xff09;四、应用配置文件&#xff08;FA模型&#xff09;1、配置文件的内部结构&#xff08;1&#xff09;app&#xff08;2&#xff09;deviceConfig&#xff08;3&#xff09;module …

C - 语言->内存函数

目录 系列文章目录 前言 1. memcpy使⽤和模拟实现 1.2 memcpy函数的模拟实现: 2. memmove 使⽤和模拟实现 2.1memmove的模拟实现&#xff1a; 3. memset 函数的使⽤ 4. memcmp 函数的使⽤ 系列文章目录 ✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff…

Python-字典详解

字典&#xff1a;存储键值对的结构 键(key) 值&#xff08;value&#xff09; 根据key快速找到value&#xff08;一种映射关系&#xff09; 1、如何创建字典 1、a {} 2、b dict() 2、创建字典的同时设置初始值 a {id:1,name:zhangsan} 逗号分割&#xff0c; &#xff…

uniapp实战 —— 猜你喜欢(含滚动触底分页加载)

效果预览 组件封装 src\components\SUI_Guess.vue <script setup lang"ts"> import { ref, onMounted } from vue import type { GuessItem } from /types/index import { getGuessListAPI } from /apis/index import type { PageParams } from /types/global…

如何使用技术 SEO 优化 Pinterest 富图钉

Pinterest 可以影响搜索引擎排名&#xff0c;尤其是谷歌。不过&#xff0c;它的作用方式与其他搜索引擎优化因素不同。这就是 Google 将图钉放在 nofollow 列表中。但是&#xff0c;它们仍然可以作为搜索引擎优化的一个重要因素。 高质量的图钉具有高分辨率的图片、吸引人的内…

软件定制开发与标准化产品的比较及选择

随着信息技术的不断发展&#xff0c;软件已经成为企业运营中不可或缺的一部分。而在选择软件时&#xff0c;企业用户通常面临两个选择&#xff1a;软件定制开发和标准化产品。软件定制开发和标准化产品各有其优缺点&#xff0c;以下是对两者的比较和选择&#xff1a; 1.成本&a…

(汇川H5U-A8)Modbus Poll与AutoShop使用RS-485通讯

一、初步认识: AutoShop: Modbus Poll: 1、连接配置 ConnectionSerial PortRS-485转串口,所以是串口Serial SettingsCOM3当你插入串口后,会显示新的一个端口,就是这个端口通讯速率9600与PLC协议配置一致数据长度8与PLC协议配置一致奇偶校验位0与PLC协议配置一致停止位2…

用perl解决小朋友问的2的10000次方是多少的问题

2的10000次方是多少&#xff0c;用perl单行命令搞定&#xff0c; perl -Mbigint -le print 2**10000如果是安装了strawberry perl &#xff0c;在Windows控制台上输入&#xff0c;单行命令的单引号要换成双引号。 perl -Mbigint -le "print 2**10000"在git-bash中执…

医院有HIS系统,为什么还要开发预约挂号小程序?数据如何互通?

**医院HIS系统&#xff08;Hospital Information System&#xff09;能够协助医院提高管理效率、优化医疗服务&#xff0c;提升患者就诊体验&#xff0c;是医院管理的重要工具&#xff0c; 但HIS系统属于医院内部管理系统&#xff0c;患者挂号只能去到门诊线下人工挂号窗口&…

Linux sed 正则表达式的分组查找和替换

Linux sed 正则表达式的分组查找和替换。 替换IP:PORT信息中的某一段信息&#xff0c;用于IP:端口信息的脱敏。 替换前 cat a01.txt 10.10.32.82:3100 10.10.22.49:21034 10.15.2.246:61501 10.200.18.89:3100 10.200.18.89:21 替换后&#xff08;-E 和 -r 都是EBR扩展模式…

循环中存在异步的情况如何让其正常执行?

最近写后端遇到一个情况&#xff0c;循环查询数据库&#xff0c;并且还需要校验数据是否正确。如下我需要对文件进行一个校验&#xff0c;并且要查询数据库中是否有文件相关的信息代码如下 async function getData(files){files.forEach(item>{let info await getData(ite…

基于LSTM和N-gram序列的英文文本生成(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

echarts图之 底部滚动横轴 缩放图形大小

//折线图-堆叠面积图function pileLineChart(odata, dom){//放大缩小的代码startvar dataZoom [],y240;if(odata.xData.length > 7){dataZoom [{show: true,realtime: true,startValue:0, endValue:5,left:"center",top:"auto",right:"auto"…

SAAS版技术中台必备【智能Print打印】系统

今天给大家介绍一个&#xff0c;全网唯一智能打印系统。 系统特色&#xff1a; 1帮助企业&#xff0c;工业&#xff0c;连接多种打印设备管理&#xff1b; 2.跨系统连接打印设备&#xff0c;进行数据传输 3.打通企业内部所有系统打印功能 4.跨越技术壁垒&#xff1b;使用简…

主食罐头哪个牌子好?猫主食罐头品牌分享

进口的猫罐头在近期确实经历了一些困难。由于疫情的影响&#xff0c;许多货品无法正常进口&#xff1b;而最近禽流感的问题也对备受好评的德罐品牌造成了重大冲击。 然而&#xff0c;我们国内生产的猫罐头产品在这段时间展现出了出色的表现。我们推出了许多优质产品&#xff0…