数据结构——6.2 图的存储与基本操作

6.2 图的存储与基本操作

  • 概念
  1. 图的存储

在这里插入图片描述

  1. 邻接矩阵存有向图和无向图

    1. 在这里插入图片描述

    2. 根据邻接矩阵求度:

      1. 无向图:第i个结点的度 = 第i行 (或第列) 的非零元素个数

      2. 有向图:

        1. 第i个结点的出度 =第i行的非零元素个数

        2. 第i个结点的入度 =第i列的非零元素个数

        3. 第i个结点的度 = 第i行、第i列的非零元素个数之和

      3. 邻接矩阵法求顶点的度/出度/入度的时间复杂度为 O(|V|)

  2. 邻接矩阵存带权图(网)

    1. 在这里插入图片描述

    2. 0与∞都表示两点间不存在边

  3. 邻接矩阵的性能分析

    1. 空间复杂度:O(|V|2):只和顶点数相关,和实际的边数无关

    2. 适合用于存储稠密图

    3. 无向图的邻接矩阵是对称矩阵,可以压缩存储 (只存储上三角区/下三角区)

    4. 在这里插入图片描述

  4. 邻接矩阵的性质

    1. 从顶点i到顶点j长度为n的路径个数求法

    2. 在这里插入图片描述

    3. 在这里插入图片描述

    4. 在这里插入图片描述

  5. 邻接表法(顺序+链式存储)

    1. 在这里插入图片描述

    2. 在这里插入图片描述

    3. 在这里插入图片描述

    4. 邻接表法求顶点的度、入度、出度

      1. 无向图:遍历顶点的边链表即可得到与该点相连的所有边,计数即为度

      2. 有向图:

        1. 出度:遍历该顶点的边链表即可得到出度,和从该点指出去的所有弧

        2. 入度:遍历所有顶点的边链表

    5. 邻接表与邻接矩阵的区别 … 在这里插入图片描述

  6. 十字链表法存储有向图

    1. 在这里插入图片描述

    2. 在这里插入图片描述

  7. 邻接多重表存储无向图

    1. 在这里插入图片描述

    2. 边的删除在这里插入图片描述

    3. 点的删除在这里插入图片描述

    4. 在这里插入图片描述

  8. 图的基本操作

    1. 在这里插入图片描述
  • 理解
  1. 假设n个顶点,e个边的有向图用邻接表表示,则删除某个顶点v相关的所有边的复杂度为O(n+e)

  2. 在有向图的邻接表存储结构中,顶点v在边表中出现的次数为:顶点v的入度

  • 技巧
  1. 若图的邻接矩阵中,除主对角线全0外,矩阵其他元素全为1,则该图一定是完全图

  2. A ( n ) ( i j ) A^(n)_(ij) A(n)(ij)表示顶点i到顶点j,长度为n的路径一共有 A ( n ) ( i j ) A^(n)_(ij) A(n)(ij)

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

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

相关文章

刘谦春晚纸牌魔术背后的数学—海明码原理简介

在昨天2024年的春晚舞台上,魔术大师刘谦以一场令人拍案叫绝的纸牌魔术再度震撼全场。他巧妙地利用了数学原理,精准无误地让观众“随机”选择的纸牌完成了配对,尤其是令人忍俊不禁的是主持人尼格买提的纸牌却没有如愿配对,小尼碎了…

Linux操作系统基础(七):Linux常见命令(二)

文章目录 Linux常见命令(二) 一、kill命令 二、ifconfig命令 三、clear命令 四、重启与关机命令 五、which命令 六、hostname命令 七、grep命令 八、|管道 九、useradd命令 十、userdel命令 十一、tar命令 十二、su命令 十三、ps命令 Linu…

最适合新手的SpringBoot+SSM项目《苍穹外卖》实战—(一)项目概述

黑马程序员最新Java项目实战《苍穹外卖》,最适合新手的SpringBootSSM的企业级Java项目实战。 项目简介 《苍穹外卖》项目的定位是一款为餐饮企业(餐厅、饭店)定制的软件产品。该项目是一个在线外卖订购系统,顾客可以通过网站或者…

CSP-202009-2-风险人群筛查

CSP-202009-2-风险人群筛查 解题思路 检查是否经过高危区 (x > x1) && (x < x2) && (y > y1) && (y < y2) 检查坐标是否在高危区域内&#xff0c; !isPassed 确保仅在第一次经过高危区域时增加 pass 计数。如果条件成立&#xff0c;表示…

第3集《佛说四十二章经》

和尚尼慈悲、诸位法师、诸位同学&#xff0c;阿弥陀佛&#xff01; 请大家打开讲议第四面&#xff0c;三、随文释义。 前面讲到本经的修学纲要是顿渐兼收&#xff0c;理事无碍。本经的修学有两个主题&#xff1a; (一)顿教法门&#xff1a; 顿教法门是一种智慧的观照。修学…

【人工智能教育】“奇幻森林里的决战:小明‘剑’指期末,勇闯试卷迷宫

在智慧校园的奇幻乐园中&#xff0c;教育的故事不再局限于传统的粉笔与黑板&#xff0c;而是跃然于光影之间&#xff0c;流淌于数据之海。小明和他的同学们正是这个新世界的探险者&#xff0c;他们手握名为“智能辅导助手”的魔法棒&#xff0c;勇闯知识的迷宫。每当他们在力学…

Linux进程间通信(IPC)

要想进程间通信&#xff0c;数据交换&#xff0c;必须通过内核&#xff1b; 一个进程将数据写到内核&#xff0c;然后另一个进程从内核读走数据。 IPC&#xff1a;进程间通信&#xff08;interprocess communication) 通信方式&#xff1a; 管道信号共享映射区&#xff08;…

【知识整理】技术新人的培养计划

一、培养计划落地实操 1. 概要 新人入职&#xff0c;要给予适当的指导&#xff0c;目标&#xff1a; 1、熟悉当前环境&#xff1a; 生活环境&#xff1a;吃饭、交通、住宿、娱乐 工作环境&#xff1a;使用的工具&#xff0c;Mac、maven、git、idea 等 2、熟悉并掌握工作技…

【机器学习】单变量线性回归

文章目录 线性回归模型&#xff08;linear regression model&#xff09;损失/代价函数&#xff08;cost function&#xff09;——均方误差&#xff08;mean squared error&#xff09;梯度下降算法&#xff08;gradient descent algorithm&#xff09;参数&#xff08;parame…

基于Linux的HTTP代理服务器搭建与配置实战

在数字化世界中&#xff0c;HTTP代理服务器扮演着至关重要的角色&#xff0c;它们能够帮助我们管理网络请求、提高访问速度&#xff0c;甚至在某些情况下还能保护我们的隐私。而Linux系统&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了搭建HTTP代理服务器的理想选择。…

I2C基础协议详解

串口是传感器、外设常用的接口&#xff0c;在低速器件中可以通过串口传输数据。高速复杂的器件&#xff0c;往往内部存在很多寄存器&#xff0c;这些寄存器的配置一般也是采用串口通信&#xff0c;可以节省IO口。 常用串口大致分为UART、IIC、SPI三种&#xff0c;其中IIC时序稍…

unity学习案例总结

动态标签 GitHub - SarahMit/DynamicLabel3D: Simple dynamic labels for a 3D Unity scene

《乱弹篇(十三)明朝事儿》

2024年农历除夕夜&#xff0c;因追剧收看电视连续剧《后宫》而放弃了收看一年一度的《春晚》&#xff0c;至到春节&#xff08;农历正月初一&#xff09;晚才看完了《后宫》。 社交网站“必应”图片《后宫》 电视连续剧《后宫》&#xff0c; 讲的是明朝英宗末年的历史故事&…

【大厂AI课学习笔记】【1.5 AI技术领域】(10)对话系统

对话系统&#xff0c;Dialogue System&#xff0c;也称为会话代理。是一种模拟人类与人交谈的计算机系统&#xff0c;旨在可以与人类形成连贯通顺的对话&#xff0c;通信方式主要有语音/文本/图片&#xff0c;当然也可以手势/触觉等其他方式 一般我们将对话系统&#xff0c;分…

[算法学习]

矩阵乘法 只有当左矩阵列数等于右矩阵行数&#xff0c;才能相乘N*M的矩阵和M*K的矩阵做乘法后矩阵大小为N*k矩阵乘法规则&#xff1a;第一个矩阵A的第 i 行与第二个矩阵的第 j 列的各M个元素对应相乘再相加得到新矩阵C[i][j]的值 整除 同余 同余的性质 线性运算&#xff0c;…

【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱1(附带项目源码)

效果演示 文章目录 效果演示系列目录前言人物和视角基本控制简单的背包系统和物品交互绘制背包UI脚本控制 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中&#xff0c;我们将…

【c++基础】扑克牌组合

说明 小明从一副扑克牌中&#xff08;没有大小王&#xff0c;J认为是数字11&#xff0c;Q是12&#xff0c;K是13&#xff0c;A是1&#xff09;抽出2张牌求和&#xff0c;请问能够组合出多少个不相等的数&#xff0c;按照由小到大输出这些数。 输入数据 第一行是一个整数n代表…

2-8 单链表+双链表+模拟栈+模拟队列

今天给大家用数组来实现链表栈和队列 单链表&#xff1a; 首先要明白是如何用数组实现&#xff0c; 在这里需要用到几个数组&#xff0c;head表示头节点的下标&#xff0c;e[i]表示表示下标为i的值&#xff0c;ne[i]表示当前节点下一个节点的下标。idx表示当前已经用到那个点…

抛弃Spring Cloud Gateway,得物 使用Netty架构100Wqps网关

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近&#xff0c;尼恩指导一个小伙伴简历&#xff0c;写了一个《高并发网关项目》&#xff0c;此项目帮这个小伙拿到 字节/阿里/…

线程池7个参数描述

所谓的线程池的 7 大参数是指&#xff0c;在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数&#xff0c;如以下源码所示&#xff1a; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable&…