图论基础(一)

news/2024/7/15 18:08:03 标签: 图论, 算法, c++

一、图论

        图论是数学的一个分支,它以图为研究对象。图论中的图是若干给定的点(顶点)以及连接两点的线(边)构成的图像,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

        图几乎可以用来表现所有类型的结构或系统,从交通网络到通信网络,从下棋游戏到最优流程,从任务分配到人际交互网络,图都有广阔的用武之地。

表示出最基础的图:(这些与点的大小,边的粗细都无关,只表示点与点之间通过边的关系

 二、图的基础

        1.顶点(vertex)

         在图的应用中,每个顶点代表的含义均不相同,而是相互通过边相联系,因此将图中的每个顶点进行标号进行区分。

           ①.度数(degree)

                与该顶点相关联的总变数,一个图G的总度数 d(V) 等于总边数的两倍,当图的边有方向(有向图),一个顶点的度可分为出度(out-degree)入度(in-degree),出度是以该顶点为起点的边数,入度则是以该顶点为终点的边数。

                 ②阶数(order)

                  图中含有顶点的个数,即含有 n 个顶点,为 n 阶图

        2. 边(edge)

        顶点与顶点之间通过边联系,构成一个完整的图。

            ①权重(weight)

                边的权重(权值),即每条边都有与之对应的值。

                例如将两个顶点看成两个地点,边看成两个地点之间的距离。

三、图的分类

        综合以上,图可以分为以下几种

        1.有向图/无向图

               最基本的图通常被定义为“无向图”,与之对应的则被称为“有向图”。两者唯一的区别在于,有向图中的边是有方向性的。

        无向边:无固定方向的边,既可 x 到 y,又可以 y 到 x

        有向边:固定方向的边,即只能 x 到 y ,不能 y 到 x

         2.有权图/无权图

            有权图: 权值就是一条边的长度或代价。
            无权图: 不是边的权值为0,而是全都为1

        3.特殊的图——环

                在图论中,是一条只有第一个和最后一个顶点重复的非空路径。一个没有环的图被称作无环图,一个没有有向环的有向图被称做有向无环图。一个无环的连通图被称作树。

         4.连通图/连通分量

                在图G中,任意两个顶点之间都存在路径,则称G为连通图

上图虽然不是一个连通图(例 点8 与 点4 不连通),但它有两个连通子图,1234,56789,

        把一个图的最大连通子图称为它的连通分量。5,6,7,8,9顶点构成的子图就是该图的最大连通子图,也就是连通分量

连通分量特点:①子图

                         ②子图是连通的

                         ③子图含有最大的顶点数

对于连通图而言,最大连通分量就是其本身


http://www.niftyadmin.cn/n/5396374.html

相关文章

408四门课复习顺序+全年详细规划

我个人认为最舒服的学习408的顺序是: 数据结构,操作系统,计算机组成原理,计算机网络 下面我来说说为什么要这么安排复习: 因为首先数据结构是基础,学好数据结构有利于理解操作系统中的一些算法&#xff…

【CSS】什么是文档流、什么是BFC,怎么触发BFC,BFC 有什么应用场景

什么是文档流 文档流是 html 元素的排列方式文档流分为 标准文档流【格式化上下文】 它是页面中的一块渲染区域,有一套渲染规则,决定了其子元素如何布局,以及和其他元素之间元素按照其在 HTML 中的先后位置至上而下布局,在这个过…

Flutter中的Provider状态管理工具有哪些优势

在Flutter应用开发中,状态管理是一个至关重要的方面。而Provider作为一种简单、灵活且高效的状态管理工具,在众多Flutter开发者中备受青睐。本文将深入探讨Provider在Flutter中的优势,帮助读者更好地理解其价值和应用场景。 简单易用 Provi…

Java设计模式:单例模式之六种实现方式详解(二)

在Java中,单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。单例模式在多种场景下都很有用,比如配置文件的读取、数据库连接池、线程池等。本文将详细介绍Java中实现单例模式的六种方…

【SpringBoot】幂等实现

1、幂等的必要性 用户不可靠:用户重复点击、暴力攻击 网络不可靠:网络抖动、投递超时 服务不可靠:调用下游服务超时、异常 2、幂等实现的方案 1、唯一索引:要求表添加单独记录幂等号的唯一索引字段 2、token机制&#xff1a…

[数据集][目标检测]狗狗表情识别VOC+YOLO格式3971张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3971 标注数量(xml文件个数):3971 标注数量(txt文件个数):3971 标注…

Linux内核模块签名与版本检查机制

内核模块签名机制 linux内核从3.7 开始加入模块签名检查机制, 校验签名是否与已编译的内核公钥匹配。目前只支持RSA X.509验证, 模块签名验证并非强制使用, 可在编译内核时配置是否开启。 CONFIG_MODULE_SIG: Module signature verification 开启该选项后,内核加载该模块…

第二章:数据类型 第一节:变量

前言 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或者多种特定关系的数据元素集合 数据框、矩阵、列表、数组 普通数据结构:向量、标量、列表、数组、多维数组 特殊数据结构:perl中的哈希,python中的字典、c语言…