25考研数据结构复习·6.2图的存储及基本操作

邻接矩阵

数组实现的顺序存储,空间复杂度高,不适合存储稀疏图

👩‍💻 如何求顶点的度、入度、出度?

  1. 无向图
    1. 第i个结点的度 = 第i行(或第i列)的非零元素个数。
  2. 有向图
    1. 第i个结点的出度 = 第i行非零元素个数
    2. 第i个结点的入度 = 第i列非零元素个数
    3. 第i个结点的度=第i行、第i列的非零元素个数之和
  • 邻接矩阵法求顶点的度/出度/入度的时间复杂度O(|V|)

邻接矩阵存储无向图的空间复杂度为O(|V|^2),适合存储稠密图

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

邻接表

顺序+链式存储

  1. 图的邻接表表示方式并不唯一
  2. 只要确定了顶点编号,图的邻接矩阵表示方式唯一

十字链表

存储有向图

空间复杂度:O(|V|+|E|)

邻接多重表

存储无向图

  1. 空间复杂度:O(|V|+|E|)
  2. 删除边、删除结点等操作很方便


邻接表(找顶点的入边不方便)邻接矩阵(空间复杂度高)十字链表(有向图)邻接多重表(无向图)
空间复杂度无向图O(|V|+2|E|);有向图O(|V|+|E|)O(|V|^2)O(|V|+|E|)O(|V|+|E|)
适合用于存储稀疏图存储稠密图只能存有向图只能存无向图
表示方式不唯一唯一不唯一不唯一
计算度/出度/入度计算有向图的入度、出度不方便,其余很方便必须遍历对应行或列
找相邻的边找有向图的入边不方便,其余很方便必须遍历对应行或列很方便很方便
删除边或顶点无向图中删除边或顶点都不方便删除边很方便,删除顶点需要大量移动数据很方便很方便

图的基本操作 

(时间复杂度)邻接矩阵邻接表
Adjacent(G,x,y)无向图/有向图:O(1)无向图/有向图:O(1)-O(|V|)
Neighbors(G,x)无向图/有向图:O(|V|)无向图:O(1)-O(|V|);有向图:O(|E|)
InsertVertex(G,x)无向图/有向图:O(1)无向图/有向图:O(1)
DeleteVertex(G,x)无向图/有向图:O(|V|)无向图:O(1)-O(|E|);有向图:删出边:O(1)-O(|V|) 删入边:O(|E|)
AddEdge(G,x,y)无向图/有向图:O(1)无向图/有向图:O(1)
FirstNeighbor(G,x)无向图/有向图:O(1)-O(|V|)无向图:O(1);有向图:找出边邻接点:O(1) 找入边临界点:O(|E|)O(1)-O(|E|)
NextNeighbor(G,x,y)无向图:O(1)-O(|V|)无向图:O(1)
Get_edge_value(G,x,y)无向图/有向图:O(1)无向图/有向图:O(1)-O(|V|)
Set_edge_value(G,x,y,v)无向图/有向图:O(1)无向图/有向图:O(1)-O(|V|)

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

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

相关文章

如何在GPU服务器上安装Stable Diffusion webUI

一、前提条件 1、硬件条件 GPU:12G,建议16G以上,还是尽量勾搭,好像现在最大32G,目前个人性价比24G有时长出售。 内存:16G以上,建议32G,也是越大越好。 硬盘:最好使用…

2024年【金属非金属矿山(地下矿山)安全管理人员】考试报名及金属非金属矿山(地下矿山)安全管理人员模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山(地下矿山)安全管理人员考试报名为正在备考金属非金属矿山(地下矿山)安全管理人员操作证的学员准备的理论考试专题,每个月更新的金属非…

抖音矩阵管理系统功能说明:一站式掌握

在当下这个信息爆炸的时代,抖音作为短视频领域的佼佼者,其用户规模持续扩大,影响力日益增强。对于内容创作者和营销人员来说,如何高效管理抖音账号,实现内容的多平台分发和精准触达,成为了亟待解决的问题。…

Redis常用指令(不定期更新)

Redis常用指令(不定期更新) 查询指定前缀key的数量查看键空间事件开启键空间通知 查询指定前缀key的数量 查询【TEST前缀】的key数量 EVAL "return #redis.call(keys,TEST:*)" 0返回信息 查看键空间事件 config get notify-keyspace-even…

Navicat Charts Creator for Mac:数据可视化利器

Navicat Charts Creator for Mac是一款专为Mac用户设计的数据可视化工具,它将复杂的数据转化为直观、易懂的图表,帮助用户更好地理解和分析数据。 该软件支持连接到多种数据库,如MySQL、MariaDB、PostgreSQL等,轻松获取实时数据&…

【QGroundControl二次开发】七.QGC自定义MAVLink消息MavLink通信协议 C++应用

1. 接收解析源码分析 通过接收串口或UDP发来的的字节流buffer&#xff0c;长度lengthbuffer.size()&#xff0c;通过下列脚本解析&#xff0c;每解析出一个mavlink数据包就执行onMavLinkMessage函数 for(int i 0 ; i < length ; i){msgReceived mavlink_parse_char(MAVL…

边集数组的存储和访问的完整代码

使用到的数据结构&#xff1a; struct eage {ll u,v,w;};//存储起点&#xff0c;重点&#xff0c;边权de数据类型 eage e[N];//开数组 ll m;//一共m条边 bool vis[N];//防止死循环&#xff0c;在dfs之前判断一下有没有走过 #include <bits/stdc.h>using namespace std; …

【Python】在CentOS 7上安装Python 3.9

在CentOS 7上安装Python 3.9.6的详细指南 本文将详细介绍如何在CentOS 7系统上安装Python 3.9。通过执行以下步骤&#xff0c;你可以顺利完成安装&#xff0c;并配置相关环境变量。 1. 准备环境 首先&#xff0c;我们需要安装开发工具和一些必要的依赖项。这些工具和库将帮助…

MySQL中,除了使用LIKE进行模糊搜索外,还有其他几种方法可以执行搜索操作

在PHP和MySQL中&#xff0c;除了使用LIKE进行模糊搜索外&#xff0c;还有其他几种方法可以执行搜索操作&#xff0c;具体使用哪种方法取决于你的具体需求&#xff08;如性能、精确度、查询的复杂性等&#xff09;。以下是一些常用的搜索方法&#xff1a; REGEXP 或 RLIKE&…

VS2022下安装和配置OpenCV环境参数+QT开发环境搭建

1.工具准备 VS2022,OpenCV4.5.5版本&#xff0c;QT5.12.12 VisualStudio最新版直接官网下载&#xff0c;根据需要进行下载&#xff0c;我下载的免费社区版本。日常开发完全够用。 qt官网下载5.12版本。 OpenCVReleases - OpenCV 选择Windows版本下载并解压到本地磁盘&#xff0…

在Spring项目中使用Maven和BCrypt来实现修改密码功能

简介 在数字时代&#xff0c;信息安全的重要性不言而喻&#xff0c;尤其当涉及到个人隐私和账户安全时。每天&#xff0c;无数的用户登录各种在线服务&#xff0c;从社交媒体到银行账户&#xff0c;再到电子邮件和云存储服务。这些服务的背后&#xff0c;是复杂的系统架构&am…

【BUG】已解决:No Python at ‘C:Users…Python Python39python. exe’

No Python at ‘C:Users…Python Python39python. exe’ 目录 No Python at ‘C:Users…Python Python39python. exe’ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班…

从 Pandas 到 Polars 三十七:在 AWS Lambda 环境中使用 Polars 来处理数据

如今&#xff0c;在serverless环境中使用Polars与在本地使用Polars非常相似。因为Polars现在内置了对在eager模式和lazy模式下从云存储&#xff08;如AWS S3&#xff09;读取和写入的支持&#xff0c;我们通常可以在处理程序函数中编写标准的Polars语法。 在这个例子中&#x…

python处理excel表格数据

xlrd读取excel xlrd可以从Microsoft Excel&#xff08;tm&#xff09;电子表格文件中提取数据 xlrd库官网&#xff1a; xlrd — xlrd 2.0.1 documentation 安装&#xff1a; pip install xlrd import xlrdbook xlrd.open_workbook("myfile.xls") print("当…

初始TypeScript

TS增加的类型 原始类型 let str: string name 其他的都一样的写。 数组类型 let arr: number[] [1,2,3] //数字数组 let bool: boolean[] [false,true] //布尔数组let str: Array<string> [a,b,c]联合类型 多种类型定义拼接&#xff0c;不能通过&拼接&…

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生&#xff0c;大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…

【数据结构】线性表与顺序表

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

Python入门第三课

# 入门第三课 # 关键字 if and or in not in ! car g print(car g) print(car dd) if car ! hh:print("wlcome to here ") age 33 print(age 33) print(age 44) age1 44 if age >0 and age1 > 0:print("nihao") if age >0 or age1 > …

【算法】分布式共识Paxos

一、引言 在分布式系统中&#xff0c;一致性是至关重要的一个问题。Paxos算法是由莱斯利兰伯特&#xff08;Leslie Lamport&#xff09;在1990年提出的一种解决分布式系统中一致性问题的算法。 二、算法原理 Paxos算法的目标是让一个分布式系统中的多个节点就某个值达成一致。算…

【Django】前端技术-网页样式表CSS

文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器&#xff1a; 选择一类标签 标签{}类选择器 class&#xff1a; 选择所有class属性一致的表情&#xff0c;跨标签.类名{}ID选择器&#xff1a;全局唯一 #id名{} 2.层次选择器…