数据结构与算法编程题47

无向图的邻接表

#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 CreateUG(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 = i;p1->nextarc = G.vertices[j].firstarc;G.vertices[j].firstarc = p1;ArcNode* p2= (ArcNode*)malloc(sizeof(ArcNode));if (p2 == NULL){cout << "内存分配失败" << endl;exit(0);}p2->adjvex = j;p2->nextarc = G.vertices[i].firstarc;G.vertices[i].firstarc = p2;}
}/*--------将邻接表输出在控制台上---------*/
void PrintfUGraph(Graph G) {for (int i = 0; i < G.vexnum; i++){cout << G.vertices[i].data << ":";ArcNode* p = (ArcNode*)malloc(sizeof(ArcNode));p = G.vertices[i].firstarc;while (p != NULL){cout << p->adjvex << "  ";p = p->nextarc;}cout << endl;}
}
/*
5 6
v1 v2 v3 v4 v5
v1 v2
v1 v4
v3 v4
v2 v3
v3 v5
v2 v5
*/
int main(void)
{Graph G;CreateUG(G);PrintfUGraph(G);return 0;
}

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

性能测试工具:Jmeter介绍

JMeter是一个开源的Java应用程序&#xff0c;由Apache软件基金会开发和维护&#xff0c;可用于性能测试、压力测试、接口测试等。 1. 原理 JMeter的基本原理是模拟多用户并发访问应用程序&#xff0c;通过发送HTTP请求或其他协议请求&#xff0c;并测量响应时间、吞吐量、并发…

关于对Spring事件监听机制相关解析

1、Spring事件监听器使用 Spring事件监听体系包括三个组件&#xff1a;事件、事件监听器&#xff0c;事件广播器 事件&#xff1a;定义事件类型和事件源&#xff0c;需要继承ApplicationEvent import org.springframework.context.ApplicationEvent; public class OrderEvent…

虹科新闻丨虹科正式加入广州市新联会科创分会

来源&#xff1a;虹科电子科技有限公司 虹科新闻丨虹科正式加入广州市新联会科创分会 11月7日&#xff0c;由广州市委统战部、广州开发区管委会、黄埔区人民政府指导&#xff0c;佳都集团、佳都科技集团、广州开发区投资集团共同主办的未来之城大湾区元宇宙创新示范中心&#…

Nginx(性能优化)

到这里文章的篇幅较长了&#xff0c;最后再来聊一下关于Nginx的性能优化&#xff0c;主要就简单说说收益最高的几个优化项&#xff0c;在这块就不再展开叙述了&#xff0c;毕竟影响性能都有多方面原因导致的&#xff0c;比如网络、服务器硬件、操作系统、后端服务、程序自身、数…

从事件驱动到 async/await

从事件驱动到 async/await 在 async/await 出现之后&#xff0c;异步变得更加简单&#xff0c;这意味着我们不需要重新审视使​​用 Promise 的简单方法。然而&#xff0c;我认为有一项有用的技术值得分享。 假设我们正在实现事件驱动的代码。为了便于说明&#xff0c;我们通…

金鸣表格文字识别大师扫描仪使用技巧

所需硬件&#xff1a;PC&#xff08;电脑&#xff09;、扫描仪 所需软件&#xff1a;金鸣表格文字识别大师5.0以上版本&#xff08;以下简称“本软件”&#xff09; 实现功能&#xff1a;直接用扫描仪扫描图片并将其转换为可编辑的excel或word. 实现原理&#xff1a;本软件利…

DevEco Studio集成ArkUI-X

语雀知识库地址&#xff1a;语雀HarmonyOS知识库 飞书知识库地址&#xff1a;飞书HarmonyOS知识库 在上篇文章(HarmonyOS应用开发工具DevEco Studio安装与使用)中我说到官方推出了4.0 Beta版本的IDE&#xff0c;这篇文章就来介绍这个版本的安装与使用 该版本集成了HarmonyOS多…

利用ChatGPT的写作能力,可以更好地组织思路、提升论文的逻辑性和质量

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

HG/T 5367.2-2022 轨道交通车辆耐电弧绝缘涂料检测

轨道交通车辆用耐电弧绝缘涂料是指施涂于地铁、轻轨、有轨电车等轨道交通车辆车顶外部受电弓区域的耐电弧绝缘涂料&#xff0c;其配套涂料层具有抗电弧绝缘作用。 HG/T 5367.2-2022A类涂料底漆、中间漆和面漆测试&#xff1a; 测试项目 测试方法 不挥发物含量 GB/T 1725 干…

UE4.27-UE5.1设置打包Android环境

打包Android配置文件 1. 配置打包Android的SDK需求文件位于下面文件中&#xff1a; 2. 指定了对应的SDK环境变量名字以及NDK需求等&#xff1a; UE4.27-UE5.1--脚本自动配置 安装前提 1. 务必关闭虚幻编辑器和Epic Games Launcher&#xff0c;以确保NDK组件的安装或引擎环境…

P1005 [NOIP2007 提高组] 矩阵取数游戏

网址&#xff1a;P1005 [NOIP2007 提高组] 矩阵取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 动态规划和高精度的组合&#xff0c;使我的滨州旋转 最后只得了80&#xff0c;两个测试点超时了 看题解有人是用了int128来做的&#xff0c;明天学一下 我的递归思路和…

关于 mapboxgl 的常用方法及效果

给地图标记点 实现效果 /*** 在地图上添加标记点* point: [lng, lat]* color: #83f7a0*/addMarkerOnMap(point, color #83f7a0) {const marker new mapboxgl.Marker({draggable: false,color: color,}).setLngLat(point).addTo(this.map);this.markersList.push(marker);},…

java 操作git

​ 实现功能&#xff1a;借助jgit实现拉取文件&#xff0c;并返回文件路径清单 <!-- 依赖库 版本号有自行选择&#xff0c;只是需要注意支持的jdk版本即可&#xff0c;我使用的是jdk1.8--> <dependency><groupId>org.eclipse.jgit</groupId><artif…

AI必然成为未来的OS

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 ChatGPT引入插件&#xff0c;AI必然成为未来OS&#xff0c;或至少成为绝大多数APP首选入口。未来软件开发根据任务不同&#xff0c;有两种不同范式&#xff1a; &a…

unity 2d 入门 飞翔小鸟 场景淡入淡出功能(三)

1、在图层新建个空的图层 场景2 2创建c#脚本 脚本创建好后&#xff0c;将脚本推拽进空白图层里面&#xff0c;将黑色图片拉进去脚本的参数里面&#xff0c;如上面最后一张图&#xff0c;两个切换的场景都要进行上述操作 using System.Collections; using System.Collection…

多个项目复用node_modules

多个项目使用的node_modules基本一致&#xff0c;每个项目都安装一遍依赖&#xff0c;对空间造成资源浪费。 通过创建软链接的方式&#xff0c;共用一套node_modules。 Win解决方案 mklink /d [链接文件或目录] [原始文件或目录] // 举例 mklink /d D:\work\project-1\node_m…

识别低效io引起的free buffer waits

产生事发时间段的awr报告 Top 5 wait events 这里重点关注&#xff1a; 1.free buffer waits 2.enq_HW-contention 3.enq:tx-row lock contention enq:HW-contention属于水位线的争用&#xff0c;已经透过alter table allocate extent&#xff0c;提前分配空间,这里不做讨论 …

软件工程之需求分析

一、对需求的基本认识 1.需求分析简介 (1)什么是需求 用户需求&#xff1a;由用户提出。原始的用户需求通常是不能直接做成产品的&#xff0c;需要对其进行分析提炼&#xff0c;最终形成产品需求。 产品需求&#xff1a;产品经理针对用户需求提出的解决方案。 (2)为什么要…

【Python】Flask + MQTT 实现消息订阅发布

目录 Flask MQTT 实现消息订阅发布准备开始1.创建Flask项目2创建py文件&#xff1a;mqtt_demo.py3.代码实现4.项目运行5.测试5.1 测试消息接收5.2 测试消息发布6、扩展 Flask MQTT 实现消息订阅发布 准备 本次项目主要使用到的库&#xff1a;flask_mqtt pip install flask…

Mysql支持ssl

Mysql支持ssl 查看数据库是否支持ssl配置 mysql> show variables like ‘have%ssl%’; 查看数据库端口号 mysql> show variables like ‘port’; 查看数据库数据存放路径 mysql> show variables like ‘datadir’; 通过openssl 制作生成 SSL 证书&#xff08;有…