数据结构之<图>的介绍

news2024/11/27 6:14:34

图(Graph)的概念:
在数据结构中,图是由节点(顶点)和边组成的非线性数据结构。图用于表示不同对象之间的关系,其中节点表示对象,边表示对象之间的连接或关系。

1.图的基本组成元素:

  1. 节点(Vertex 或 Node): 表示图中的实体或对象。节点可以有不同的属性和值。在某些情况下,节点也被称为顶点。

  2. 边(Edge): 表示连接节点的关系。边可以是有向的(有方向性)或无向的(无方向性),也可以有权重或权值(表示边的成本、距离或其他度量)。

2.图的分类:

2.1.有向图(Directed Graph):

在这里插入图片描述

有向图是一种图,其中边有方向。也就是说,从一个节点到另一个节点的边具有明确的起点和终点。有向图中的边可以是单向的,也可以是双向的。

2.2.无向图(Undirected Graph):

在这里插入图片描述
无向图是一种图,其中边没有方向。也就是说,从一个节点到另一个节点的边没有明确的起点和终点。无向图中的边是双向的,表示节点之间的对等关系。

2.3.连通图(Connected Graph):

在这里插入图片描述
连通图是指图中任意两个节点之间都存在路径的图。也就是说,从图中的任意一个节点出发,都可以到达图中的其他所有节点。

2.4.非连通图(Disconnected Graph):

在这里插入图片描述
非连通图是指图中存在孤立的节点或者多个不相连的子图。也就是说,从某个节点出发,无法到达图中的其他某些节点。

2.5.加权图(Weighted Graph):

在这里插入图片描述
加权图是一种图,其中每条边都有一个权重或者值。这些权重可以表示节点之间的距离、成本、容量等。加权图用于解决一些需要考虑边的权重的问题,如最短路径问题、最小生成树问题等。

3.图的表示方式:

  1. 邻接矩阵(Adjacency Matrix): 用二维数组表示节点之间的连接关系。矩阵的行和列表示节点,矩阵元素表示节点之间是否存在边或边的权重。

  2. 邻接表(Adjacency List): 用链表、数组或字典等数据结构表示图中的节点及其相邻节点。每个节点记录其相邻节点的信息。

4.图的常见操作和算法:

  • 遍历(Traversal): 深度优先搜索(DFS)和广度优先搜索(BFS)是常用的图遍历算法,用于访问和搜索图中的节点和边。

  • 最短路径算法(Shortest Path Algorithms): 例如 Dijkstra 算法和 Bellman-Ford 算法,用于找到图中两个节点之间的最短路径。

  • 最小生成树算法(Minimum Spanning Tree Algorithms): 如 Prim 算法和 Kruskal 算法,用于找到连接图中所有节点的最小成本树形结构。

  • 拓扑排序(Topological Sorting): 用于有向无环图(DAG)中节点的线性排序,使得图中任何一对顶点u和v,若边(u, v)存在,则u排在v的前面。

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

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

相关文章

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置

查看原文 文章目录 基于 CentOS7 系统部署 Jenkins 环境基于 Docker 安装部署 Jenkins环境配置 Jenkins 中文模式配置用户名密码形式的 Jenkins 凭据配置 ssh 私钥形式的 Jenkins 凭据配置 Jenkins 执行任务的节点 基于 CentOS7 系统部署 Jenkins 环境 (1&#xff…

广东高院严惩“套路贷”犯罪,保护校园安全

近日,广东高院发布了一批依法严惩“套路贷”犯罪的典型案例,其中一起涉及在校学生的“套路贷”案件引起了广泛关注。 这起案件中,张某等人针对在校大学生开展无抵押高息短期借款“套路贷”业务,通过频繁威胁恐吓、借新还旧、转单…

【计算机视觉--解耦视频分割跟踪任何物体】

UIUC&Adobe开源|无需监督,使用解耦视频分割跟踪任何物体!视频分割的训练数据往往昂贵且需要大量的标注工作。这限制了将端到端算法扩展到新的视频分割任务,特别是在大词汇量的情况下。为了在不为每个个别任务训练视频数据的情况下实现“跟…

NtripShare Mos监测平台边缘计算终端与自动优化平差算法

忙忙乎乎23年又要过去了,回头看今年做的事,只有两件事值得一提: 1、自动化监测边缘计算终端; 2、自动优化平差算法。 自动化监测边缘计算终端 终端采用全国产硬件方案终端支持全站仪供电控制终端支持远程控制终端支持数据缓存技…

力扣刷题-二叉树-二叉树的所有路径

257 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 思路 参考: https://www.programmercarl.com/0257.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%89%80%E6%9C%89%E8%B7%AF%E5%BE…

嵌入式开发中的总线与时钟

总线 AHB总线 AHB的全称是"Advanced High-performance Bus",中文翻译就是"高级高性能总线"。这是一种在计算机系统中用于连接不同硬件组件的总线架构,它可以帮助这些组件之间高效地传输数据和信息。这个总线架构通常用于处理速度较快且对性能要求较高的…

Markdown编辑器常用颜色背景指南(附颜色与代码展示,cv即可用)

目录 一.字体颜色1)常用html代码2)通过【颜色代码表】直接改写 二.字体背景颜色1)常用html代码 一.字体颜色 1)常用html代码 html代码 <font colorred> text </font> 常用颜色及其对应的十六进制和颜色名: 红色 p 红色 #FF0000 red <font color#FF0000> t…

springboot整合vue,将vue项目整合到springboot项目中

将vue项目打包后&#xff0c;与springboot项目整合。 第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-t…

Frontier ,MDPI T3系列,植物科学领域高质量期刊分级目录发布!

公众号&#xff1a;生信漫谈&#xff0c;获取最新科研信息&#xff01; Frontier &#xff0c;MDPI T3系列&#xff0c;植物科学领域高质量期刊分级目录发布&#xff01;https://mp.weixin.qq.com/s/ukbjIgdyaza7LmKmZmy5bw 2023年3月31日&#xff0c;中国科学技术大学科研部…

运筹学经典问题(二):最短路问题

问题描述 给定一个图&#xff08;有向图或无向图&#xff09; G ( V , E ) G (V, E) G(V,E)&#xff0c; V V V是图中点的集合&#xff0c; E E E是图中边的集合&#xff0c;图中每条边 ( i , j ) ∈ E (i, j) \in E (i,j)∈E都对应一个权重 c i j c_{ij} cij​&#xff08;…

第7章 排序

前言 在这一章&#xff0c;我们讨论数组元素的排序问题。为简单起见&#xff0c;假设在我们的例子中数组只包含整数&#xff0c;虽然更复杂的结构显然也是可能的。对于本章的大部分内容&#xff0c;我们还假设整个排序工作能够在主存中完成&#xff0c;因此&#xff0c;元素的个…

Redis Cluster集群搭建 三主三从

Redis包下载 Linux&#xff1a; http://download.redis.io/releases/ Mac or Windows: https://redis.io/download/ 2.下载后解压进入文件夹&#xff08;本次我的Redis版本是6.2.14版本&#xff09; /redis/redis-6.2.14 开始安装 make instarll修改配置文件复制redis.conf 6…

pve8.1版本安装及环境初始化过程记录

背景 经历pve旧版本奔溃事件&#xff0c;果断重新购买了装备&#xff0c;做个稳定的pve环境&#xff0c;旧主机用于折腾其他系统&#xff0c;硬盘一定要用好的。 1.pve8.1.3系统版本安装 下载地址 Download Proxmox software, datasheets, agreements 使用种子下载会快一点儿…

英伟达盒子 Jetson Xshell连接串口查看日志方法(串口日志、盒子日志)

文章目录 连接串口xshell连接串口信息 连接串口 接盒子上的A2、B2&#xff0c;以及接地线&#xff1a; 另外一头接上电脑&#xff08;我用的RS485转USB工具&#xff09;&#xff1a; xshell连接 协议选择SERIAL&#xff1a; 设置盒子厂商约定的端口号、波特率、数据位、停止位…

ElaticSearch 是如何建立索引的?

前面讲到了 NoSQL 数据库的应用&#xff0c;在关系型数据库和 NoSQL 数据库之外&#xff0c;还有一类非常重要的存储中间件&#xff0c;那就是文件索引。当你在电商网站搜索商品&#xff0c;或者在搜索引擎搜索资料时&#xff0c;都离不开基于文件索引的各种检索框架的支持。 …

十二星座对音乐有感觉但是唱得最不着调的排名。

第一名&#xff08;狮子座&#xff09;、第二名&#xff08;水瓶座&#xff09;、第三名&#xff08;射手座&#xff09; 第四名&#xff08;金牛座&#xff09;、第五名&#xff08;摩羯座&#xff09;、第六名&#xff08;天秤座&#xff09; 第七名&#xff08;巨蟹座&#…

03 使用Vite开发Vue3项目

概述 要使用vite创建Vue3项目&#xff0c;有很多种方式&#xff0c;如果使用命令&#xff0c;则推荐如下命令&#xff1a; # 使用nvm将nodejs的版本切换到20 nvm use 20# 全局安装yarn npm install -g yarn# 使用yarnvite创建项目 yarn create vite不过&#xff0c;笔者更推荐…

解决“bat中文路径乱码“问题

今天&#xff0c;在使用.bat脚本&#xff0c;将hello.png从"D:\mypic\备份"目录&#xff0c;拷贝到"D:\mypic\备份"时&#xff1b;发现中文乱码,弹出如下对话框: 图(1) bat中文路径乱码 原来的命令是&#xff1a; copy D:\mypic\one\hello.png D:\mypic\备…

WordPress VIP收费下载插件Erphpdown v17.0.1 开心版

会员推广下载专业版 WordPress插件&#xff08;erphpdown&#xff09;是模板兔开发的一款针对虚拟资源收费下载/付费下载/付费视频/收费查看/付费阅读/付费查看/VIP下载查看的插件&#xff0c;经过完美测试运行于wordpress 3.x-5.x版本。后续模板兔会增加更多实用的功能。 模板…

1.10 实战:Postman生成在线接口文档

对于接口测试,最最关键的一个部分,就是接口文档,有了详细的接口文档,我们才能根据接口文档去写好我们的接口测试用例以及写好我们的接口自动化测试。目前比较常用的接口文档是两种方式 Swagger我们看一下Swagger的官网的例子就可以看到它有多方便了。我们打开REST API Docu…