第六章 图 二、图的存储结构(邻接矩阵法)

news2024/9/23 17:11:00

我们根据问题来引出邻接矩阵的各种含义:

目录

我们根据问题来引出邻接矩阵的各种含义:

1.如何计算指定顶点的度、入度、出度(分无向图、有向图来考虑)?时间复杂度如何?

2.如何找到与顶点相邻的边(入边、出边)?时间复杂度如何?

3.如何存储带权图?

4.空间复杂度―—O(),适合存储稠密图

5.无向图的邻接矩阵为对称矩阵,如何压缩存储?

6.设图G的邻接矩阵为A(矩阵元素为0/1),则An的元素An[i][i]等于由顶点i到顶点j的长度为n的路径的数目


1.如何计算指定顶点的度、入度、出度(分无向图、有向图来考虑)?时间复杂度如何?

(1)有向图

邻接矩阵中,值为0表示此值的横纵坐标所对应的两个结点之间没有边,反之则有边。

我们要横着看,在第一行中,只有一个1,也就表示结点A有一条指向结点B的边,A的出度加一,B的入度加一。

由此,我们通过观察邻接矩阵表可以知道,A指向B出度加1,C指向A入度加1,D指向A入度加1,结点A的度=入度+出度=2+1=3;

(2)无向图

邻接矩阵中,值为0表示此值的横纵坐标所对应的两个结点之间没有边,反之则有边。

由此,我们通过观察邻接矩阵表可以知道,结点A的度为3。(也就是第一行1的个数)

总度数=3+3+2+2+2+2=14

2.如何找到与顶点相邻的边(入边、出边)?时间复杂度如何?

如问题一的解答可以找到与顶点相邻的入边和出边个数,找出所有的边需要遍历每一个结点,所以它的时间复杂度为O(n);(n为结点个数)

3.如何存储带权图?

(1)无向图

在无向图中,我们把每两个顶点之间的权值存入邻接表中,只要值不为0或∞,就表示这两者之间有边。

(2)有向图

与无向图类似,只要值不为0或∞,就表示这两者之间有边,只不过有向图表示的边具有指向性。

4.空间复杂度―—O(\left |V \right | ^2),适合存储稠密图

 就是一个二维数组的空间复杂度。

邻接矩阵存储的是结点之间的边,所以结点之间的边越多越好,所以适合存储稠密图。

5.无向图的邻接矩阵为对称矩阵,如何压缩存储?

对称矩阵的上半三角和下半三角的值是一样的,如果使用二维数组就太浪费空间了,所以我们使用一维矩阵存储下半就行了。

6.设图G的邻接矩阵为A(矩阵元素为0/1),则An的元素An[i][i]等于由顶点i到顶点j的长度为n的路径的数目

我们得到如上一个邻接矩阵,要我们算出某结点到某结点的长度为2路径有多少个,其实只需要对矩阵进行一次数乘就可以了

通过观察右边的矩阵,我们得知,从结点B到B的路径有3条,依此类推。

同理,如果想要计算某结点到某结点的长度为3路径有多少个,只需要算出矩阵A^3.


 

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

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

相关文章

laravel框架系列(一),Dcat Admin 安装

介绍 Laravel 是一个流行的 PHP 开发框架,它提供了一套简洁、优雅的语法和丰富的功能,用于快速构建高质量的 Web 应用程序。 以下是 Laravel 的一些主要特点和功能: MVC 架构:Laravel 使用经典的模型-视图-控制器(MV…

LeetCode 92. Reverse Linked List II【链表,头插法】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Git与IDEA: 解决`dev`分支切换问题及其背后原因 为何在IDEA中无法切换到`dev`分支?全面解析!

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Spring Boot工具篇--使用yml多环境配置和创建多环境profile打包

1、yml多环境配置 在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识; application-dev 开发环境 application-test 测试环境 application-prod 生产环境 如果我们要激活某一个环境,只需要在 ap…

【List篇】ArrayList 详解(含图示说明)

Java中的ArrayList是一个动态数组,可以自动扩展容量以适应数据的添加和删除。它可以用来存储各种类型的数据,例如String,Integer,Boolean等。ArrayList实现了List接口,可以进行常见的List操作,例如添加、插…

ping与Traceroute是如何工作的

ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol,就是互联网控制报文协议。 ICMP 报文是封装在 IP 包里面的。因为传输指令的时候,肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型,不同的类型…

最近读书了吗?林曦老师与你分享来自暄桐课堂的读书方法

近来,大家有在开心读书吗?对于读书,有一个很生动的说法:“无事常读书,一日是四日。若活七十年,便二百八十。”读书帮助我们超越个体生命经验的限制,此时此地的我们,也可借由书本&…

JS-DOM BOM(未完)

一.Web APIs 1.Web APIs和JS基础关联性 1.1 JS组成 1.2 JS基础阶段以及Web APIs阶段 2.API和Web API 2.1 API 2.2 Web API 2.3 API和Web API总结 二.DOM 1.DOM简介 1.1 什么是DOM 1.2 DOM树 2.获取元素 2.1 如何获取页面元素 2.2 根据ID获取 使用getElementById()方法获…

爬虫系统的核心:如何创建高质量的HTML文件?

在网页抓取或爬虫系统中,HTML文件的创建是一项重要的任务。HTML文件是网页的基础,包含了网页的所有内容和结构。在爬虫系统中,我们需要生成一个HTML文件,以便于保存和处理网页的内容。 在这种情况下,可以使用Java函数…

deepfm内容理解

对于CTR问题,被证明的最有效的提升任务表现的策略是特征组合(Feature Interaction); 两个问题: 如何更好地学习特征组合,进而更加精确地描述数据的特点; 如何更高效的学习特征组合。 DNN局限 :当我们使…

ESXI主机扩容(VCSA)

原因分析SCSI扩容 VMware为ESXI虚拟机硬盘扩容(需要先关闭ESXI) ESXI扩容前ESXI扩容 https://blog.csdn.net/tongxin_tongmeng/article/details/132652423 ESXI扩容后

2023年高教社杯数学建模国赛 赛题浅析

2023年国赛如期而至,为了方便大家尽快确定选题,这里将对赛题进行浅析,以分析赛题的主要难点、出题思路以及选择之后可能遇到的难点进行说明,方便大家尽快确定选题。 难度排序 B>A>C 选题人数 C>A>B (预估结果&…

软件工程课件

软件工程 考点概述软件工程概述能力成度模型能力成熟度模型集成软件过程模型逆向工程![ ](https://img-blog.csdnimg.cn/425cea8190fb4c5ab2bf7be5e2ad990e.png) 考点概述 重点章节 软件工程概述 之前老版教程的,之前考过 能力成度模型 记忆 能力等级 和 特点 能力…

【Java】基础练习 --- Stream练习

1.拼接 给定一个字符串数组,使用 Stream 把所有字符串拼接成一个字符串。 String[] arr {"a", "b", "c"}; 输出: abc(1)源码: package swp.kaifamiao.codes.Java.d0907;import java.util.stream.Stream;/*…

2023高教社杯全国大学生数学建模竞赛E题代码解析

2023高教社杯全国大学生数学建模竞赛E题 黄河水沙监测数据分析 代码解析 因为一些不可抗力,下面仅展示部分python代码(第一问的部分),其余代码看文末 首先导入包: import numpy as np import pandas as pd import m…

【Python】matplotlib分格显示

参考:matplotlib图形整合之多个子图一起绘制_matplotlib多子图_王小王-123的博客-CSDN博客 方式一: import matplotlib.pyplot as plt import matplotlib.gridspec as gridspecplt.figure() # 方式一: gridspec # rowspan:行的跨度,colspan…

【代码随想录】Day 49 动态规划10 (买卖股票Ⅰ、Ⅱ)

买卖股票的最佳时机 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/ dp[i]表示在第i天时,卖/不卖股票能获得的最大利润: 1、卖股票:dp[i] prices[i] -minPrice(i天以前的最低价格) 2、不卖股票&am…

Python web自动化测试 —— 文件上传

文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 1 2 3 4 5 步骤:1、找到定位元素&#xff0c…

ICCV2021 Exploring Cross-Image Pixel Contrast for Semantic Segmentation (Oral)

Exploring Cross-Image Pixel Contrast for Semantic Segmentation 探索语义分割的跨图像像素对比度 Paper:https://openaccess.thecvf.com/content/ICCV2021/html/Wang_Exploring_Cross-Image_Pixel_Contrast_for_Semantic_Segmentation_ICCV_2021_paper.html Co…

k8s 入门到实战--部署应用到 k8s

k8s 入门到实战 01.png 本文提供视频版: 背景 最近这这段时间更新了一些 k8s 相关的博客和视频,也收到了一些反馈;大概分为这几类: 公司已经经历过服务化改造了,但还未接触过云原生。公司部分应用进行了云原生改造&…