图的存储--十字链表与邻接多重表

一、十字链表(存储有向图)

  (邻接表找顶点的入度不方便     邻接矩阵的时间复杂度高)

  用十字链表可以解决查找入度不方便的问题

  1.十字链表中对于弧节点总共有4个节点  A、B、C、D、分别指向弧尾顶点的编号、弧头顶点的编号、弧头相同的下一条弧、弧尾相同的下一条弧。(使用数组顺序存储)

  对于顶点结点,则是数据域(编号)、该顶点作为弧头的第一条弧、该顶点作为弧尾的第一条弧。

  给大家解释一下弧节点:指的是箭头所指向的那个结点。

                           顶点结点:指的是箭头出发的那个结点。

如图:顺着结点的绿色指针一直走,能找到从当前结点出发,所能发射出的所有的弧。

         顺着结点的黄色指针一直走,能够找所有指向当前结点的弧。

  空间复杂度: O(|V|+|E|) V:顶点的个数  E:边的个数。

 注意:十字链表只能用于存储有向图。

  无向图:  如果用邻接矩阵存储无向图,时间复杂度太高O(v)^2

                  如果用邻接表存储无向图,每条边会对应两份冗余信息(一条边会有两份数据),删除顶点、删除边等操作时间复杂度高。

二、邻接多重表(存储无向图)

  因此 可以使用邻接多重表来存储无向图:

  顶点结点:用数组来顺序存储这些信息  数据域和与顶点相连的第一条边。

  边结点:  两个顶点编号 i  j  依附于顶点i的下一条边、依附于顶点j的下一条边。

  如图:顺着橙色的一直找,可以找到从该顶点出发可以到达的其他顶点的所有的边,因为他是无向图,所以绿色也一样。

  这样做,想要找到和某一个顶点相连的边是很容易的,每一条边也只会对应一个边结点。删除结点或边很方便。 删除边结点只需要顺着橙色指针找到下一个边结点,再修改前面结点的指针即可。 

总结:

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

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

相关文章

DataEase:一款国产开源数据可视化分析工具

DataEase 是由飞致云开发的一款基于 Web 的数据可视化 BI 工具,支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,帮助用户快速分析业务数据并洞察其趋势,为企业的业务改进与优化提供支持。 DataEase 的优势在于:…

Matlab:矩阵运算篇——矩阵数学运算

目录 1.矩阵的加法运算 实例——验证加法法则 实例——矩阵求和 实例——矩阵求差 2.矩阵的乘法运算 1.数乘运算 2.乘运算 3.点乘运算 实例——矩阵乘法运算 3.矩阵的除法运算 1.左除运算 实例——验证矩阵的除法 2.右除运算 实例——矩阵的除法 ヾ( ̄…

学习率调整策略

学习率衰减策略是深度学习优化过程中的一个关键因素,它决定了训练过程中学习率的调整方式,从而影响模型收敛的速度和效果。不同的衰减策略在不同的任务和模型上可能有不同的表现,下面从我用到过的几个衰减策略进行记录,后续慢慢跟…

BIG_EVENT

环境准备: 开发: 跨域问题: 只有浏览器才存在跨域问题, 此时浏览器的地址和前端服务一致,所以不存在跨域问题, 但是当浏览器中的js代码需要向8080发送请求时就会由于存在跨域问题而失败. 简单的说前端和浏览器的地址端口是一致的,浏览器只能向前端服务发送请求, 所以可以使用配…

STM32定时器配置1毫秒中断

在STM32中配置定时器以产生1毫秒中断的步骤如下: 1. 确定定时器时钟频率 假设系统主频为72MHz,定时器挂载在APB1总线(如TIM2),且APB1预分频系数为1,则定时器时钟为72MHz。 2. 计算预分频器和自动重载值&…

『Rust』Rust运行环境搭建

文章目录 rust编译工具rustupVisual Studio VS Code测试编译手动编译VSCode编译配置 参考完 rust编译工具rustup https://www.rust-lang.org/zh-CN/tools/install 换源 RUSTUP_DIST_SERVER https://rsproxy.cn RUSTUP_UPDATE_ROOT https://rsproxy.cn修改rustup和cargo的安…

Flutter桌面开发(二、隐藏顶部状态栏)

使用windowManager // 确保在其他 window 相关操作之前初始化await windowManager.ensureInitialized();WindowOptions windowOptions WindowOptions(minimumSize: Size(800, 600),size: Size(1280, 980),center: true,backgroundColor: Colors.transparent,skipTaskbar: fals…

蓝桥备赛(18)- 红黑树和 set 与 map(上)

对于二叉搜索树 , 平衡二叉树 , 以及红黑树 , 目前只需要了解背后的原理 , 不做代码实现的要求 , 重要的就是了解各种操作的时间复杂度即可 , 为set 与 map 做铺垫 一、二叉搜索树 1.1 基本概念 相较与于堆…

【实战-解决方案】Webpack 打包后很多js方法报错:not defined

问题分析 在不打包的情况下,方法(如 checkLoginStatus、filterSites、initProgressBar 等)可以正常运行,而经过 Webpack 打包后报 is not defined 错误,通常有以下几个可能的原因: 全局变量丢失 在 Webpac…

ESP32芯片模组方案,设备物联网无线通信,WiFi蓝牙交互控制应用

在当下,物联网正以前所未有的速度席卷全球,从繁华都市的智能建筑,到宁静乡村的智慧农业,从人们日常使用的可穿戴设备,到工业领域复杂精密的自动化生产线,物联网的触角已深入到生活与生产的每一个角落。 而…

Unity开发的抖音小游戏接入抖音开放平台中的流量主(抖音小游戏接入广告)

前言:作者在进行小游戏审核版本的过程中,碰到了下列问题,所以对这个抖音小游戏接入广告研究了下。 还有就是作者的TTSDK版本号是6.2.6,使用的Unity版本是Unity2022.3.29f1,最好和作者的两个版本号保持一致,因为我发现TTSDK旧版的很多函数在新版中就已经无法正常使用了,必…

Java高频面试之集合-11

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说hashmap的put和get操作 HashMap 的 put 和 get 操作是核心功能,其底层通过 数组链表/红黑树 实现&a…

【计算机网络】第八版和第七版的主要区别,附PDF

「《计算机网络》(... 谢希仁」,https://pan.quark.cn/s/7c2147cb48f7 1. 新增内容 - 软件定义网络(SDN):第八版在网络层章节中新增了对SDN的简介(第4章),介绍了其基本原理和应用。 - Wi-Fi代…

批量将 Excel 文档中的图片提取到文件夹

前面我们介绍过如何批量删除 Excel 文档中的所有图片或者指定的图片,其中就需要用到批量提取 Excel 文档中图片的操作。我们如何才能够将 Excel 文档中的图片快速的提取出来呢?其实单个 Excel 文档中的图片提取到文件夹中是有多种方法可以完成的&#xf…

批量删除或替换 Excel 的 Sheet 工作表

在一个 Excel 文档中通常会包含一个或者多个 Sheet 工作表。我们通常也可以自定义的添加或者删除某些工作表。比如我们想要将某个 Excel 的第一个工作表删除,那我们就需要先通过工具打开 Excel 文档,然后再进行删除操作。单个文件我们这样处理是没有问题…

跟踪napi_gro_receive_entry时IP头信息缺失的分析

问题描述 在使用eBPF程序跟踪napi_gro_receive_entry内核跟踪点时,发现获取到的IP头部字段(如saddr、daddr、protocol)为空值。 代码如下: /* 自定义结构体来映射 napi_gro_receive_entry tracepoint 的 format */ struct napi…

【Golang】第五弹----函数

笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:Golang 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 一、函数 1.1基本介绍…

naive ui 控制 n-input 只可以输入26个英文字母+数字

<n-form-item label"编码" path"sn"><n-input v-model:value"form.sn" placeholder"请输入编码" :on-input"handleInput"></n-input></n-form-item> // 处理输入事件的函数 const handleInput (v…

在Pycharm配置conda虚拟环境的Python解释器

〇、前言 今天在配置python解释器时遇到了这样的问题 经过一下午自行摸索、上网搜寻后&#xff0c;终于找到的解决的方案&#xff0c;遂将该方法简要的记录下来&#xff0c;以备后用&#xff0c;并希望能帮助到有同样问题或需求的朋友:) 我所使用的软件的版本如下&#xff0c;假…

网络安全防护架构有哪些 网络安全防护措施包括

网络安全预防措施 网安措施 计算机网络安全措施主要包括保护网络安全、保护应用服务安全和保护系统安全三个方面&#xff0c;各个方面都要结合考虑安全防护的物理安全、防火墙、信息安全、Web安全、媒体安全等等。 (一)保护网络安全。 网络安全是为保护商务各方网络端系统之…