【数据结构】图的存储结构(邻接矩阵)

一.邻接矩阵

1.图的特点

        任何两个顶点之间都可能存在边,无法通过存储位置表示这种任意的逻辑关系。

图无法采用顺序存储结构。

2.如何存储图?

将顶点与边分开存储。

3.邻接矩阵(数组表示法)

基本思想:

用一个一维数组存储图中顶点的信息,用一个二维数组存储图中各顶点之间的邻接关系。

假设图G有n个顶点,则它的邻接矩阵是一个n*n的方阵

4.无向图的邻接矩阵

1.特点:

无向图的邻接矩阵是一个对称矩阵,主对角线为0

2.如何求顶点i的度?

邻接矩阵的第i行非零元素的个数

3.如何判断顶点i和j之间是否存在边?

判断arc[i][j]是否为1

4.如何求顶点i的所有邻接点?

将数组中第i行元素扫描一遍,若arc[i][j]为1,则顶点j为顶点i的邻接点

5.有向图的邻接矩阵

有向完全图:任意两个顶点之间都有方向相反的弧

1.如何求顶点i的出度?

扫描第i行

2.如何求顶点i的入度?

扫描第i列

6.网图的邻接矩阵

 

二.邻接矩阵存储无向图的类

const int MAX_VERTEX=10;//图的最大顶点数
template <class T>
class MGraph{
private:
    T vertex[MAX_VERTEX];
    int arc[MAX_VERTEX][MAX_VERTEX];
    int vertexNum,arcNum;//实际顶点个数,边的条数
public:
    MGraph(T v[],int n,int e);
    ~MGraph();
    void DFSTraverse(int v);
    void BFSTraverse(int v);
};
template<class T>
MGraph<T>::MGraph(T v[],int n,int e){
    int vi,vj;
    vertexNum=n;
    arcNum=e;
    for(int i=0;i<n;i++){
        vertex[i]=v[i];
    }
    for(int i=0;i<n;i++){//初始化邻接矩阵
        for(int j=0;j<n;j++){
            arc[i][j]=0;
        }
    }
    for(int i=0;i<e;i++){//依次输入每一条边
        cin>>vi>>vj;//输入边依附的两个顶点的编号
        arc[vi][vj]=1;
        arc[vj][vi]=1;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vatee万腾的科技征程:Vatee数字化创新的前沿探讨

在Vatee万腾的科技征程中&#xff0c;我们目睹了一场数字化创新的引领之旅&#xff0c;探讨了Vatee在科技前沿的独到见解。Vatee万腾不仅仅是一家科技公司&#xff0c;更是一支前行不辍的冒险队伍&#xff0c;通过不断突破自我&#xff0c;探索未知领域&#xff0c;引领着数字化…

Ghidra逆向工具配置 MacOS 的启动台显示(Python)

写在前面 通过 ghidra 工具, 但是只能用命令行启动, 不太舒服, 写个脚本生成 MacOS 的 app 格式并导入启动台. 不算复杂, 主要是解析包的一些元信息还有裁剪软件图标(通过 MacOS 自带的 API) 脚本 #!/opt/homebrew/bin/python3import os import re import subprocess as sp…

SpringCloud 2022有哪些变化

目录 前提条件 AOT支持 Spring Native支持 前提条件 Spring Cloud 2022.0.0是构建在Spring Framework 6.0和Spring Boot 3.0 之上的一S个主要版本。 JDK要求最低需要是Java 17J2EE要求最低需要Jakarta EE 9 AOT支持 Spring cloud 2022支持AOT编译&#xff0c;它是将程序源…

【HarmonyOS开发】配置开发工具DevEco Studio

1、下载 注意&#xff1a; 1、安装过程中&#xff0c;一定要自定义安装位置&#xff0c;包比较大&#xff0c;包比较大&#xff0c;包比较大&#xff01;&#xff01;&#xff01; 2、可以将该工具添加到右键中&#xff0c;否则&#xff0c;如果你的项目不是HarmonyOS&#xff…

Maven依赖传递和依赖冲突以及继承和聚合关系详解

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 1、Maven依赖传递和依赖冲突 1. Maven依赖传递特性 概念 假如有Maven项目A&#xff0c;项目B依赖A&#xff0c;项目C依赖B。那么我们可以说 C依赖A。也就是说&#xff0c;依赖的关系为&#xff1a;C—>B—>…

探索亚马逊大语言模型:开启人工智能时代的语言创作新篇章

文章目录 前言一、大语言模型是什么&#xff1f;应用范围 二、Amazon Bedrock总结 前言 想必大家在ChatGPT的突然兴起&#xff0c;大家多多少少都会有各种各样的问题&#xff0c;比如&#xff1a;大语言模型和生成式AI有什么关系呢&#xff1f;大语言模型为什么这么火&#xf…

linux使用chage修改用户密码过期时间解决rac安装互信问题

文章目录 一、RAC建多实例库提示互信问题二、原因分析1.修改系统用户密码期限2.修改语法&#xff1a;chage [选项] 用户名3.常用示例&#xff1a; 一、RAC建多实例库提示互信问题 二、原因分析 因为此次是在原有集群情况下创建多个实例&#xff0c;其实不需要优先排查俩节点的…

Aerial for Mac: 沉浸在高清鸟瞰的世界,让你的屏幕焕发新生

你是否已经厌倦了那些平淡无奇的屏保程序&#xff1f;是否希望你的Mac屏幕能更生动、更有趣&#xff1f;如果你对此抱有强烈的期待&#xff0c;那么Aerial for Mac绝对会是你期待已久的解决方案。 Aerial for Mac是一款独具特色的高清屏保程序&#xff0c;它以鸟瞰的视角带你领…

4.5 Windows驱动开发:实现进程数据转储

多数ARK反内核工具中都存在驱动级别的内存转存功能&#xff0c;该功能可以将应用层中运行进程的内存镜像转存到特定目录下&#xff0c;内存转存功能在应对加壳程序的分析尤为重要&#xff0c;当进程在内存中解码后&#xff0c;我们可以很容易的将内存镜像导出&#xff0c;从而更…

FISCO BCOS 3.0【01】搭建第一个区块链网络

官方技术文档&#xff1a;https://fisco-bcos-doc.readthedocs.io/zh-cn/latest/index.html 我们在官方技术文档的基础上&#xff0c;进行&#xff0c;对文档中一些不清楚的地方进行修正 搭建Air版本FISCO BCOS联盟链 本节以搭建单群组FISCO BCOS链为例操作&#xff0c;使用开…

关于ASO优化的分步入门指南1

欢迎阅读我们的应用商店优化&#xff08;ASO&#xff09;分步指南&#xff0c;接下来我们将引导大家完成ASO研究的初始步骤&#xff0c;为提高应用程序的知名度和吸引自然下载奠定基础。 1、确定竞争对手。 首先确定应用程序的直接和间接竞争对手。我们可以通过咨询客户或进行…

基于LeNet实现手写体数字识别实验

目录 1 数据 1.1 数据预处理 2 模型构建 2.1 自定义算子实现 2.2 Pytorch框架实现 2.3 测试两个网络的运算速度 2.4 两个网络加载同样的权重&#xff0c;两个网络的输出结果是否一致&#xff1f; 2.5 计算模型的参数量和计算量。 3 模型训练 4 模型评价 5 模型预测 总结…

深度学习基础知识——从人工神经网络开始

一、介绍 您知道第一个神经网络是在 20 世纪 50 年代初发现的吗&#xff1f; 深度学习 (DL) 和神经网络 (NN) 目前正在推动本世纪一些最巧妙的发明。他们从数据和环境中学习的令人难以置信的能力使他们成为机器学习科学家的首选。 深度学习和神经网络是自动驾驶汽车、图像识别软…

Pytorch torch.normal()的用法

该函数原型如下&#xff1a; normal(mean, std, *, generatorNone, outNone) 该函数返回从单独的正态分布中提取的随机数的张量&#xff0c;该正态分布的均值是mean&#xff0c;标准差是std。 用法如下&#xff1a;我们从一个标准正态分布N&#xff5e;(0,1)&#xff0c;提取…

《洛谷深入浅出基础篇》——P3405 citis and state ——哈希表

上链接&#xff1a;P3405 [USACO16DEC] Cities and States S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3405 上题干&#xff1a; 题目描述 Farmer John 有若干头奶牛。为了训练奶牛们的智力&#xff0c;Farmer John 在谷仓的墙上放了一…

cadence virtuoso PEX option error

在设置PEX options时出现error。 Error while compiling rules file /home/IC/Tech/PDk_13mmrf_1P6M_30k/Calibre/LvS/SmicSPM7PR12R_cal013_mixR_sali_pimtx_1233_v2.6_2P . xrc: ErrorINCLi on lire 838of /home/IC/Tech/PDK_13mmrf_1P6M_30k/Calibre/LvS/SmicSPM7PR12R_cal…

DAO和增删改查通用方法-BasicDao

文章目录 一、BasicDao是什么&#xff1f;二、BasicDao分析三、BasicDao实现&#xff08;1&#xff09;BasicDao&#xff08;2&#xff09;ActorDao&#xff08;3&#xff09;TestDao 四、总结 一、BasicDao是什么&#xff1f; BasicDao:基础的数据对象&#xff0c;可以完成通用…

vmware workstation pro 17.5 安装 macos 13.5.2 虚拟机超详细图文教程

前言 本文很细&#xff0c;甚至有点墨迹&#xff0c;主要为了方便从来没用过 vmware 的新人&#xff0c;其实大部分步骤和正常安装虚拟机没有区别&#xff0c;详细贴图以方便大家对比细节 参考文章 感谢大佬们的无私分享 https://blog.csdn.net/qq_19731521/article/details…

【LeetCode刷题-滑动窗口】-- 795.区间子数组个数

795.区间子数组个数 class Solution {public int numSubarrayBoundedMax(int[] nums, int left, int right) {return lessEqualsThan(nums,right) - lessEqualsThan(nums,left - 1);}private int lessEqualsThan(int[] nums,int k){int len nums.length;int res 0,left 0,ri…

三十、W5100S/W5500+RP2040树莓派Pico<PPPoE>

文章目录 1 前言2 简介2 .1 什么是PPPoE&#xff1f;2.2 PPPoE的优点2.3 PPPoE数据交互原理2.4 PPPOE应用场景 3 WIZnet以太网芯片4 PPPOE示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 PPPoE是一种在以太…