【数据结构第 6 章 ① 】- 图的定义和基本术语

news2024/10/6 8:21:58

目录

一、图的定义

二、图的基本术语


图是一种比线性表和树更为复杂的数据结构。在线性表中,数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继;在树形结构中,数据元素之间有着明显的层次关系,并且每一层的数据元素可能和下一层中的多个元素(即孩子结点)相关,但只能和上一层中一个元素(即双亲结点相关);而在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关


一、图的定义

图(Graph)G 由两个集合 V 和 E 组成,记为 G = (V, E),其中 V 是顶点(Vertex)有穷非空集合顶点即图中的数据元素;E 是 V 中两个顶点之间的关系的有穷集合,两个顶点之间的关系称做边(Edge)。V(G) 和 E(G) 通常分别表示图 G 的顶点集和边集,E(G) 可以为空集,若 E(G) 为空集,则图 G 只有顶点而没有边

对于图 G,若边集 E(G) 为有向边的集合,则称该图为有向图;若边集 E(G) 为无向边的集合,则称该图为无向图

在有向图中,顶点 <x, y> 是有序的,它称为从顶点 x 到顶点 y 的一条有向边,因此 <x, y> 与 <y, x> 是不同的两条边。顶点对用一条尖括号括起来,x 是有向边的始点,y 是有向边的终点。<x, y> 也称作一条弧,则 x 为弧尾,y 为弧头

在无向图中,顶点 (x, y) 是无序的,它称为与顶点 x 和顶点 y 相关联的一条边,这条边没有特定的方向,(x, y) 与 (y, x) 是同一条边。为了有别于有向图,无向图的顶点对用一对圆括号括起来。

图一分别给出了有向图和无向图的示例。


二、图的基本术语

用 n 表示图中顶点数目,用 e 表示边的数目,下面介绍图结构中的一些基本术语。

  1. 子图:假设有两个图 G = (V, E) 和 G' = (V', E'),如果 V' \subseteq V 且 E' \subseteq E,则称 G' 为 G 的子图。例如,图二所示为图一中 G1 和 G2 子图的一些例子。

  2. 无向完全图和有向完全图:对于无向图,若具有 C_n^2 = \dfrac{n(n - 1)}{2} 条边(即图中任意两个顶点之间都存在一条边),则称为无向完全图;对于有向图,若具有 A_n^2 = n(n - 1) 条弧(即图中任意两个顶点之间都存在两条方向相反的弧),则称为有向完全图。

  3. 稀疏图和稠密图:在有很少条边或弧(如 e < nlog_2^n)的图称为稀疏图,反之称为稠密图。

  4. 权和网:在实际应用中,每条边可以标上具有某种含义的数值,该数值称为该边上的权。这些权可以表示从一个顶点到另一个顶点的距离或耗费。这种带权的图通常称为网

  5. 邻接点:对于无向图 G,如果图的边 (v, v') \in E,则称顶点 v 和 v' 互为邻接点,即 v 和 v' 相邻接。边 (v, v') 依附于顶点 v 和 v',或者说边 (v, v') 与顶点 v 和 v' 相关联。

  6. 度、入度和出度:顶点 v 的度是指和 v 相关联的边的数目,记为 TD(v)。例如,图一 (b) 中 G2 的顶点 v3 的度是 3。对于有向图,顶点 v 的度分为入度和出度。入度是以顶点 v 为头的弧的数目,记为 ID(v);出度是以顶点 v 为尾的弧的数目,记为 OD(v),顶点 v 的度为 TD(v) = ID(v) + OD(v)。例如,图一 (a) 中 G1 的顶点 v1 的入度 ID(v1) = 1,出度 OD(v1) = 2,度 TD(v1) = ID(v1) + OD(v1) = 3。

    如果顶点 vi 的度为 TD(vi),那么一个有 n 个顶点,e 条边的图(包括无向图和有向图),满足如下关系:e = \frac{1}{2}\sum_{i=1}^{n}TD(v_i)

    如果为有向图,还满足如下关系:e = \sum_{i}^{n}ID(v_i) = \sum_{i}^{n}OD(v_i)

  7. 路径和路径长度:在无向图 G 中,从顶点 v 到顶点 v' 是一个顶点序列(v = v_{i, 0}, v_{i, 1}, ..., v_{i, m} = v'),其中 (v_{i, j-1}, v_{i, j}) \in E, 1 \le j \le m。如果 G 是有向图,则路径也是有向的,顶点序列应满足 <v_{i, j-1}, v_{i, j}> \in E, 1 \le j \le m。路径长度是一条路径上经过的边或弧的数目。

  8. 简单路径、简单回路或简单环:序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。

  9. 连通、连通图和连通分量:在无向图 G 中,如果从顶点 v 到顶点 v' 有路径,则称 v 和 v' 是连通的。如果对于图中任意两个顶点 v_i,v_j \in Ev_iv_j 都是连通的,则称 G 是连通图。图一 (b) 中的 G2 就是一个连通图,而图三 (a) 中的 G3 则是非连通图,但 G3 有 3 个连通分量,如图三 (b) 所示。所谓连通分量,指的是无向图中的极大连通子图(尽可能包含更多的顶点和边的连通子图)

    对于 n 个顶点的无向图 G,若 G 是连通图,则最少有 n - 1 条边;若 G 是非连通图,则最多有 条边,即只有一个顶点是孤立的,其余顶点中任意两个顶点都存在一条边

  10. 强连通、强连通图和强连通分量:在有向图 G 中,如果从顶点 v 到顶点 v' 和从顶点 v' 到 v 之间都有路径,则称 v 和 v' 是强连通的。如果图中任意两个顶点都是强连通的,则称 G 是强连通图。有向图中的极大强连通子图称作有向图的强连通分量。例如图一 (a) 中的 G1 不是强连通图,但它有两个强连通分量,如图四所示。

    对于 n 个顶点的有向图,若 G 是强连通图,则最少有 n 条弧(形成回路)

  11. 连通图的生成树一个极小连通子图,它包含图中全部顶点,但只有足以构成一棵树的 n - 1 条边,这样的连通子图称为连通图的生成树。图五所示为 G3 中最大连通分量的一棵生成树。如果在一棵生成树上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第二条路径

  12. 有向树:有一个顶点的入度为 0,其余顶点的入度均为 1 的有向图称为有向树。

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

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

相关文章

学生备考使用台灯到底好不好?公认好用的护眼台灯推荐

在现代生活中&#xff0c;许多学生的学习压力越来越大&#xff0c;面临的近视几率也越来越大&#xff0c;特别是初中生&#xff0c;眼睛发育还未完全&#xff0c;使用不恰当的灯光也会对眼睛造成损害&#xff0c;特别是护眼台灯。虽然护眼台灯在功能上能够提供充足、柔和的光线…

网络互连与常用设备

网络互连是为了将两个以上具有独立自治能力、同构或异构的计算机网络连接起来&#xff0c;实现数据流通&#xff0c;扩大资源共享的范围&#xff0c;或者容纳更多的用户。网络互连包括局域网与局域网的互连、局域网与广域网的互连、广域网与广域网的互连&#xff0c;这可以扩大…

线性回归算法-实战-房价预测

线性回归算法-实战-房价预测 本次使用线性回归的算法和knn算法进行对比 加载并处理数据对数据进行归一化处理数据拆分knn模型对象创建和训练线性回归建模和训练 加载并且处理数据 import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsRegresso…

kennard-stone算法实现样本集划分(ks算法)

目录 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; 二、Kennard-Stone算法作用 三、代码 四、对选出来的train样本使用T-SNE算法进行绘制 五、参考链接 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; KS算法原理&#xff1a;把所有的样本都看…

UE4 .ini文件使用

在需要给配置文件的类中加上config标签&#xff0c;当然变量也要加 在项目的Config下&#xff0c;新建一个Default类的UCLASS中config等于的名字&#xff0c;这里结合上面截图就是DefaultTest 在下面写入 [/Script/项目名/类名] 然后写变量以及对应的值即可

机器学习-SVM(支持向量机)

推荐课程&#xff1a;【机器学习实战】第5期 支持向量机 |数据分析|机器学习|算法|菊安酱_哔哩哔哩_bilibili 赞美菊神ヾ ( ゜ⅴ゜)&#xff89; 一、什么是支持向量机&#xff1f; 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一类按监督学习&#xff0…

python学习——对大疆御3E拍摄照片赋予坐标系并旋转

对大疆御3E拍摄照片赋予坐标系并旋转 问题描述 进行植被覆盖度验证时&#xff0c;需采集验证点的植被覆盖情况&#xff0c;但无人机拍摄的照片缺少坐标系&#xff0c;无法进行对比验证。 解决方案 赋予照片坐标系 在gdal中对影像赋予坐标系主要参数为仿射六参数&#xff1…

深度解析TCP协议:特点、应用场景及市面上常见软件案例

目录 引言 TCP的特点 TCP的应用场景 市面上使用TCP的软件案例 引言 TCP&#xff08;Transmission Control Protocol&#xff09;是计算机网络中一种基于连接的、可靠的传输层协议。它具有一系列独特的特点&#xff0c;适用于广泛的应用场景。本文将深入研究TCP的特点、应用…

VSCode SSH登录服务器 提示XHR failed

设置->搜索“代理” 把图中的√去掉 重启 即可

全面覆盖,无所不包:C++ 编程必备指南 | 开源日报 No.99

fffaraz/awesome-cpp Stars: 51.0k License: MIT 这个项目是一个精心策划的 C(或者 C) 框架、库、资源和其他有趣东西的列表。它收集了各种标准库&#xff0c;如 STL 容器和算法&#xff1b;不同领域的框架&#xff0c;比如人工智能、异步事件循环等&#xff1b;以及一系列功…

【Linux】cat 命令使用

cat 命令 cat&#xff08;英文全拼&#xff1a;concatenate&#xff09;命令用于连接文件并打印到标准输出设备上。 可以使用cat连接多个文件、创建新文件、将内容附加到现有文件、查看文件内容以及重定向终端或文件中的输出。 cat可用于在不同选项的帮助下格式化文件的输出…

应用商店ASO优化提升APP排名的6大策略

ASO优化基操你了解多少&#xff1f; ASO优化对于APP推广运营来说是必不可少的一个方法。在当今竞争激烈的应用程序市场中&#xff0c;ASO&#xff08;App Store Optimization&#xff09;优化已成为提升APP排名和曝光度的关键因素。 一、ASO优化的重要性 ASO优化有助于提高AP…

如何为 3D 模型制作纹理的最佳方法

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 您可以通过不同的方式为 3D 模型创建 3D 纹理。下面我们将介绍为 3D …

UML图的各种类型以及软件设计师考试考察的方式

UML建模 前言 常见的UML的类型 UML 比前两题是更难的&#xff08;略高&#xff0c;但是学会就可以了。前两题是&#xff1a;数据流图&#xff0c;数据库的设计&#xff09;&#xff0c;因为UML图有很多类型&#xff1a;用例图&#xff0c;类图与对象图&#xff0c;顺序图&…

免费网页抓取工具大全【附下载和工具使用教程】

在当今信息爆炸的时代&#xff0c;获取准确而丰富的数据对于企业决策和个人研究至关重要。而网页抓取工具作为一种高效获取互联网数据的方式&#xff0c;正逐渐成为大家解决数据需求的得力助手。本文将深入探讨网页抓取工具的种类&#xff0c;并为大家提供简单实用的页面采集教…

springboot3 liquibase SQL执行失败自动回滚,及自动打tag

一&#xff1a; 自动执行回滚&#xff0c; 已执行成功的忽略&#xff0c;新sql执行失败则执行新sql文件中的回滚sql pom.xml <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>4.25.0&…

2023.2版idea安装教程,现在jdk8已经过去式了,不同idea支持的jdk不同。升级jdk后idea也要随之升级

下载idea2023.2版本&#xff0c;下载之前需要删除之前的版本&#xff0c;一定要删除干净&#xff0c;删除程序要勾选那两个delete 下载路径&#xff1a;其他版本 - IntelliJ IDEA (jetbrains.com.cn) 选择2023.2版本 下载后进入安装程序&#xff0c;选择安装目录&#xff0c;然…

关于我自己搭建了一个完整的 网站 - 从零开始(服务器购买选型,域名备案,wordpress 主题,各种支付插件)

这篇博客主要介绍是如何在华为云上搭建一个 WordPress 网站。我将详细介绍从购买服务器到推广网站的整个过程&#xff0c;包括域名主机的备案。无论您是技术新手还是有一定经验的开发者&#xff0c;这篇文章都能为您提供有价值的指导。 第一步&#xff1a;选择云服务器 我选择…

计算一组x和y(一维数组)

输入30个整数a1,a2,a3,…,a30&#xff0c;计算所有的x与y。已知&#xff1a; 输入格式: 30个整数 输出格式: 计算得到的x1, x2,.......,x10 计算得到的y1, y2,.......,y10 所有输出精确到小数点后3位。 注意&#xff1a; 1、输出的每个“”左右各有一个空格&#xff0c;输出…

TrustZone之Translation Look aside Buffer(TLB)

TLB缓存最近使用的地址转换。处理器具有多个独立的translation regimes。TLB记录了一个条目表示的translation regime&#xff0c;包括安全状态。虽然TLBs的结构是由实现定义的&#xff0c;但以下图表显示了一个示例&#xff1a; 当软件在EL1或EL2中发出TLB失效操作&#xff08…