数据结构与算法编程题44

news/2024/7/23 8:51:45 标签: 数据结构

有向无权图邻接矩阵表示

//参考博客:https://blog.csdn.net/qq_54162207/article/details/117414707

#include <iostream>
using namespace std;

#define Maxsize 100
#define VertexmMaxNum 20
#define ERROR  0
#define OK     1
typedef string VertexType;
typedef int  EdgeType;

typedef struct Graph   //无向图
{
	VertexType vex[VertexmMaxNum];
	EdgeType edge[VertexmMaxNum][VertexmMaxNum];
	int vexnum;     //顶点数
	int edgenum;  //边数
}Graph;

//确定某顶点在G中的位置下标
int locateVex(Graph& G, VertexType v)
{
	for (int i = 0; i < G.vexnum; i++)
	{
		if (v == G.vex[i]) return i;
	}
	return -1;
}

void CreateDG(Graph& G)
{
	int i = 0, j = 0;
	cout << "请输入有向图的顶点数和边数:";
	cin >> G.vexnum >> G.edgenum;
	cout << "请输入顶点:";
	for (i = 0; i < G.vexnum; i++)
	{
		cin >> G.vex[i];
	}
	for (i = 0; i < G.vexnum; i++)
	{
		for (j = 0; j < G.vexnum; j++)
			G.edge[i][j] = 0;
	}
	for (int k = 0; k < G.edgenum; k++)
	{
		cout << "请输入第" << k + 1 << "条边:";
		VertexType v1, v2;
		cin >> v1 >> v2;
		int i = locateVex(G, v1);
		int j = locateVex(G, v2);
		G.edge[i][j] = 1;
	}
}

/*--------打印图的邻接矩阵-----------*/
void PrintfUGraph(Graph G) {
	//将图的邻接矩阵输出在控制台上
	for (int i = 0; i < G.vexnum; i++) {
		cout << "v" << i + 1 << ":";
		for (int j = 0; j < G.vexnum; j++)
			cout << G.edge[i][j] << " ";
		cout << endl;
	}
}

//顶点信息
//v1 v2 v3
//边信息
/*
v1 v2
v1 v3
v2 v3
*/
int main(void)
{
	Graph G;
	CreateDG(G);  //不带权有向图
	PrintfUGraph(G);
	return 0;
}

在这里插入图片描述


http://www.niftyadmin.cn/n/5242943.html

相关文章

2023年中国消费金融行业研究报告

第一章 行业概况 1.1 定义 中国消费金融行业&#xff0c;作为国家金融体系的重要组成部分&#xff0c;旨在为消费者提供多样化的金融产品和服务&#xff0c;以满足其消费需求。这一行业包括银行、消费金融公司、小额贷款公司等多种金融机构&#xff0c;涵盖了包括消费贷款在内…

如何从eureka-server上进行服务发现,负载均衡远程调用服务

在spring cloud的maven的pom文件中添加eureka-client的依赖坐标 <!--eureka-client依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependen…

springboot -事务管理

事务 概念 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;这些操作要么同时成功&#xff0c;要么同时失败。 操作 开启事务&#xff1a; start transaction / begin提交事务&#xff1a;commit回滚事务&#xff1a; rollback 注解 Transactional …

普中STM32 单片机资料

普中科技–各型号开发板资料下载链接: ①普中-精灵1开发板: 百度网盘链接:https://pan.baidu.com/s/1Pa8Ep1xmg6uoq17O6Nwyyw?pwd=1234 提取码:1234 ②普中-ESP32开发板: 百度网盘链接:https://pan.baidu.com/s/16VthcbW27oEWp162H3bi6Q?pwd=1234 提取码:1234 一…

Python推导式详细讲解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;推导式是一种简洁而强大的语法特性&#xff0c;可以用来创建列表、集合、字典等数据结构。本文将深入探讨Python中的三种推导式&#xff1a;列表推导式、集合推导式和字典推导式&#xff…

开发者热议GitHub代码搜索政策,最佳搜索解决方案探索

近日&#xff0c;名为koepnick 的开发者因在一台老式电脑上使用GitHub 搜索自己的存储库代码&#xff0c;却没有手机等设备协助验证&#xff0c;导致无法登录GitHub 账户&#xff0c;发文怒斥GitHub&#xff1a;如若没有登录&#xff0c;就无法使用搜索代码服务&#xff0c;与其…

企业ERP软件定制开发要注意|app小程序搭建

企业ERP软件定制开发要注意|app小程序搭建 企业ERP软件定制开发是一项复杂而且关键的任务&#xff0c;它需要深入理解企业的需求和流程&#xff0c;并且以此为基础进行设计和开发。以下是一些关于企业ERP软件定制开发的注意事项。 首先&#xff0c;我们必须确保在进行定制开发之…

【4】基于多设计模式下的同步异步日志系统-框架设计

7. 日志系统框架设计 本项⽬实现的是⼀个多日志器日志系统&#xff0c;主要实现的功能是让程序员能够轻松的将程序运行日志信息落地到指定的位置&#xff0c;且⽀持同步与异步两种方式的日志落地方式。 项目的框架设计将项目分为以下几个模块来实现。 日志等级模块 日志等级模…