数据结构(超详细讲解!!)第二十六节 图(上)

1.基本概念

 图(Graph)是一种较线性表和树更为复杂的非线性结构。是对结点的前趋和后继个数不加限制的数据结构,用来描述元素之间“多对多”的关系(即结点之间的关系是任意的)。

一个图G = (V,E)由顶点(vertex)集V(G)和边(edge)集E(G)组成。E中的每一条边连接V中两个不同的顶点。

1、有向图(digraph)

如果图中每一条边上两个顶点都是有序的,那么图就叫做是有向图(directed graph)。 可以用带尖括号的有序点对<ν,ω>来表示有向图的一条边,其中ν,ω∈V(G)。 有向图中的边都是有方向的,称之为有向边。对于有向边来说,<ν,ω>和<ω,ν>表示的是两条方向相反的边。 有向图中的边也可称之为弧(arc),ν可称之为弧尾(tail)或初始点(initial node),ω可称之为弧头(head)或终端点(terminal node)。

V(G1)={ν1,ν2,ν3,ν4}  

E(G1)={<ν1,ν2>,<ν2,ν1>,<ν3,ν1>,<ν3,ν4>,<ν2,ν4>}

2、无向图(undigraph)

如果图中每一条边上两个顶点都是无序的,那么图就叫做是无向图(undirected graphy) 可以用带圆括号的点对(ν,ω)来表示无向图的一条边,其中ν,ω∈V(G)。 无向图中的边都是没有方向的,称之为无向边。其中,(ν,ω)和(ω,ν)表示的是同一条边。

V(G2)={1,2,3,4}

E(G2)={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}

3、邻接点

如果图G = (V,E)为无向图,若存在一条边(v,v’)∈E(G),则称点v和v’互为邻接点,即v和v’相邻接,边(v,v’)依附于顶点v和v’,或者说(v,v’)和顶点v和v’相关联。 如果图G = (V,E)为有向图,若存在一条弧 <v,v’> ∈E(G),则称顶点v邻接到顶点v’,顶点v’邻接自顶点v,弧 <v,v’>和顶点v和v’相关联。

4. 度、入度和出度

顶点的度 :顶点v的度TD(V)=和v相关联的边的数目

在无向图中, 顶点所具有的边的数目称为该顶点的度

入度和出度:

对于有向图G={V,{A}}:

v的入度ID(v) = 以顶点v为头的弧的数目

v的出度OD(v) = 以顶点v为尾的弧的数目

有向图中,顶点的度 = 入度 + 出度

一个有n个顶点,e条边的图满足下列等式:

即边(或弧)的总数 = 各个顶点的度的总数的一半

5、完全图、稀疏图与稠密图

设n为顶点数,e为边或弧的条数    

对无向图有:0 ≤ e ≤  n(n-1)/2        

有向图有:0≤ e ≤ n(n-1)

证明:每个顶点至多有n-1条边与其它的n-1个顶点相连,则n个顶点至多有n(n-1)条边。但每条边连接2个顶点,故最多为n(n-1)/2。

完全图:边达到最大的图

无向完全图:具有n(n-1)/2条边的简单图称为无向完全图  

有向完全图:具有n(n-1)条边的有向图。  

稀疏图: 边或弧很少的图。

稠密图: 边或弧很多的图。 

6. 路径与回路

路径:在图G 中,如果存在一个顶点序列(ω1,ω2,ω3,…,ωN),使得(ωi,ωi+1)∈E(G),1 ≤ i < N,则称这个顶点序列为顶点ω1到顶点ωN的一条路径(path)。

G1中{ 1,2,5,7 }是一条路径

G2中{ 1,2,3,5,6 }是一条路径

如果G是有向图,则路径也是有向的

路径长度:路径上边或弧的数目或沿路径各边权值之和

回路:第一个顶点和最后一个顶点相同的路径

简单路径:序列中顶点不重复出现的路径(即不含回路的路径)

简单回路:除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫简单回路

7、子图    

设有两个图 G=(V, E) 和 G’=(V’, E’)。若 V’真包含于 V 且 E’真包含于E, 则称 图G’ 是 图G 的子图。

8、连通图

连通图 :在无向图G中,如果从顶点v到顶点v’有路径,则称v和v’是连通的

如果对于图中的任意两个顶点vi和vj都是连通的,则称G是连通图

是否连通是对无向图来说的

连通分量 :

无向图中的极大连通子图 连通图只有一个连通分量,就是它本身,而非连通图有多个连通分量。

强连通图 :

在有向图G中,如果每一对vi,vj,都存在从vi到vj和从 vj到vi的路径的路径,则称G为强连通图

是否强连通是对有向图来说的

强连通分量 :

有向图中的极大强连通子图

显然,强连通图只有一个强连通分量,即本身

非强连通图有多个强连通分量。

有n个顶点的有向强连通图最多有n(n-1)条边(构成一个有向完全图的情况);最少有n条边(n个顶点依次首尾相接构成一个环的情况)。

9、生成树

生成子图 :包括所有顶点的子图,成为生成子图

生成树  若生成的子图是树,则称为生成树。

一个连通图的生成树是指一个极小连通子图,它含有图中的全部顶点,但只有足以构成一个树的n-1条边。

一颗有n个顶点的生成树有且仅有n-1条边,如果图中多于n-1条边,则一定有回路。

如果一个图具有n个顶点且边数小于n-1条,则该图一定是非连通图。

一个连通图的生成树不唯一。

10、网

权:某些图的边或弧具有与它相关的数, 称之为权。权可以代表一个顶点到另一个顶点的距离、耗费等。

网:这种带权连通图一般称为网。

若无向图G中每一条边都有一个对应的数,则称G为带权图或网。类似的,边上带权的有向图称为有向网。 

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

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

相关文章

思维跳动:抖店商品怎么设置拼团?

在抖店上销售商品时&#xff0c;设置拼团活动是一种促销策略&#xff0c;可以吸引更多用户参与购买&#xff0c;并增加销量。下面将介绍一些方法和步骤&#xff0c;帮助你在抖店中设置商品的拼团活动。 一、抖店商品怎么设置拼团&#xff1f; 首先&#xff0c;选择适合的商品进…

HP1010 | 业界首款图腾柱 PFC 专用数字控制器震撼来袭!

随着节能标准和客户需求的不断提高&#xff0c;电源解决方案的效率和尺寸也在不断优化&#xff0c;设计紧凑高效的 PFC 电源是一个复杂的开发挑战。随着第三代半导体器件氮化镓和碳化硅的大范围应用&#xff0c;图腾柱无桥 PFC&#xff08;TPPFC&#xff09;应用获得极大的拓展…

Kettle连接到GBase 8s数据库

1&#xff0c;将GBase 8s数据库驱动放到kettle的lib目录下 如下图&#xff0c;在data-integration\lib下添加连接GBase 8s数据库的驱动gbasedbtjdbc.jar(视Server版本&#xff0c;增加匹配的驱动) 2&#xff0c;在 文件 -> 新建 -> 数据库连接 或者是在 转换 -> D…

Python 利用aiohttp异步流式下载文件

背景 本篇文章为小编翻译文章&#xff0c;小编在查找资料时看到的一篇文章&#xff0c;看了后感觉不错&#xff0c;就翻译过来&#xff0c;供大家参考学习 文章原文地址&#xff1a;https://www.slingacademy.com/article/python-aiohttp-how-to-download-files-using-stream…

6、Qt延时的使用

一、sleep() 1、说明 QThread类中如下三个静态函数&#xff1a; QThread::sleep(n); //延迟n秒 QThread::msleep(n); //延迟n毫秒 QThread::usleep(n); //延迟n微妙 这种方式使用简单&#xff0c;但是会阻塞线程&#xff0c;有界面时界面会卡死&#xff0c;一般在非GUI线…

Linux常用命令——cd命令

文章目录 1. 简介2. 命令参数3. 常见用法与实例3.1 基本用法3.2 使用绝对路径或相对路径3.3 使用特殊字符3.4 使用参数 4. 总结 1. 简介 cd命令是Linux系统中最基础且频繁使用的命令之一&#xff0c;用于改变当前工作目录。它是“change directory”的缩写&#xff0c;对于任何…

mybatis快速入门(基于Mapper接口编程)

1、准备数据模型&#xff0c;建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom&qu…

北美运营商T-mobile认证分级简介和定义类型

T-mobile认证如果对于成品来说&#xff0c;有个好处就是可以选用经过T-mobile认证过的模组或者芯片&#xff0c;如果产品使用的芯片或者模组是没有经过认证的&#xff0c;测试量和测试时间方面会比使用认证过的多一些。此外T-mobile认证对产品的认证进行分级管理&#xff1a;认…

Netty Review - 探索Pipeline的Inbound和Outbound

文章目录 概念Server CodeClient CodeInboundHandler和OutboundHandler的执行顺序在InboundHandler中不触发fire方法InboundHandler和OutboundHandler的执行顺序如果把OutboundHandler放在InboundHandler的后面&#xff0c;OutboundHandler会执行吗 概念 我们知道当boss线程监控…

Linux常用命令----mkdir命令

文章目录 1. 基础概念2. 参数含义3. 常见用法4. 实例演示5. 结论 在Linux操作系统中&#xff0c;mkdir 命令是用来创建目录的基础命令。这个命令简单但极其强大&#xff0c;是每个Linux用户都应当熟悉的工具之一。以下是对mkdir命令的详细介绍&#xff0c;包括其参数含义、常见…

【C++】: unordered_map的使用

1、概念 key 键值的类型。unordered_map中的每个元素都是由其键值唯一标识的。 T 映射值的类型。unordered_map中的每个元素都用来存储一些数据作为其映射值。 Hash 一种一元函数对象类型&#xff0c;它接受一个key类型的对象作为参数&#xff0c;并根据该对象返回size_t类型…

jenkins-cicd基础操作

1.先决条件 1.首先我个人势在k8s集群中创建的jenkins,部署方法搭建 k8s部署jenkins-CSDN博客 2.安装指定插件. 1.Gitlab plugin 用于调用gitlab-api的插件 2.Kubernetes plugin jenkins与k8s进行交互的插件,可以用来自动化的构建和部署 3.Build Authorizatio…

【MATLAB】异常数据识别

基于分位数的异常点识别 首先&#xff0c;给定了一个原始数据序列x。然后&#xff0c;计算了序列x的上四分位数和下四分位数&#xff0c;并根据这两个值计算了异常点的阈值。上四分位数减去1.5倍的四分位数范围得到异常值下界&#xff0c;下四分位数加上1.5倍的四分位数范围得…

进程--特征、五种基本状态、PCB、进程的创建与终止

一、进程的定义与特征 为了使参与并发执行的每个程序都能独立地允许&#xff0c;在操作系统中为程序配置一个专门的数据结构&#xff0c;称为进程控制块&#xff08;Process Control Block&#xff0c;PCB&#xff09;。系统利用PCB来描述进程的基本情况和活动过程&#xff0c…

每日一练 | 华为认证真题练习Day140

1、如图所示&#xff0c;网络管理员希望将SWA与SWB之间的两条物理链路手工聚合成一条Eth-trunk链路&#xff1b;下列描述正确的是&#xff08;&#xff09;。 A. 不能被聚合 B. 聚合后可以正常工作 C. 可以聚合&#xff0c;聚合后只有GE端口能收发数据 D. 可以聚合&#xff…

【C++】程序题( STL标准模板库)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

如何去选择合适的线缆测试仪?CAT8网线认证测试

如何去选择合适的线缆测试仪? 如果你是第三方检测单位&#xff0c;系统集成商&#xff0c;或者线缆生产厂家&#xff0c;我个人建议选择福禄克DSX系列无疑是比较保险的做法&#xff0c;因为考虑到福禄克在国内耕耘多年所积累起来的品牌知名度和口碑&#xff0c;选择一款大家都…

[VNCTF 2023] web刷题记录

文章目录 象棋王子电子木鱼BabyGo 象棋王子 考点&#xff1a;前端js代码审计 直接查看js源码&#xff0c;搜一下alert 丢到控制台即可 电子木鱼 考点&#xff1a;整数溢出 main.rs我们分段分析 首先这段代码是一个基于Rust的web应用程序中的路由处理函数。它使用了Rust的异步…

Achronix推出基于FPGA的加速自动语音识别解决方案

提供超低延迟和极低错误率&#xff08;WER&#xff09;的实时流式语音转文本解决方案&#xff0c;可同时运行超过1000个并发语音流 2023年11月——高性能FPGA芯片和嵌入式FPGA&#xff08;eFPGA IP&#xff09;领域的领先企业Achronix半导体公司日前自豪地宣布&#xff1a;正式…

算法通关村第五关—Hash基础知识(青铜)

Hash基础 一、Hash的概念和基本特征 哈希(Hash)也称为散列&#xff0c;就是把任意长度的输入&#xff0c;通过散列算法&#xff0c;变换成固定长度的输出&#xff0c;这个输出值就是散列值。很多人可能想不明白&#xff0c;这里的映射到底是啥意思&#xff0c;为啥访问的时间…