图的基本概念_图的定义-程序员宅基地

技术标签: 算法  图论  数据结构与算法  

前言

在计算机科学中,图是由节点(或顶点)和边组成的一种数据结构。节点表示图中的对象,边表示节点之间的关系。图可以用来表示现实世界中的许多问题,例如社交网络、电路网络、交通网络、知识图谱等等。在图论中,有许多重要的算法和问题,例如最短路径、最小生成树、最大流等等。 


一、图的定义

(Graph)G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。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相关联的一条边。这条边没有特定的方向,(x,y)与(y,x)是同一条边。为了有别于有向图,无向图的顶点对用一对圆括号括起来。

二、图的基本术语 

用n表示图中顶点数目,用e表示边的数目。

(1)子图假设有两个图G=(v,E)和G'=(v',E),如果v'\subseteqv且E'\subseteqE,则称G'为G的子图。例如,图2是图1的子图。

(2)无向完全图和有向完全图:

有向完全图是指一个有向图,其中每对不同的顶点之间都存在一条有向边,也就是任意两个顶点之间都互相连通。因此,对于n个顶点的有向完全图,它的弧数为n(n-1)。

无向完全图是指一个无向图,其中每对不同的顶点之间都存在一条无向边,也就是任意两个顶点之间都互相连通。因此,对于n个顶点的无向完全图,它的边数为n(n-1)/2。

如图所示

(3)稀疏图和稠密图:

稀疏图和稠密图用来描述图中边的数量和节点数量之间的关系。

一个图被称为稀疏图,是指它的边数相对于节点数比较小或者少。换句话说,稀疏图中节点之间的连接比较少,大部分节点之间没有边相连。

而稠密图则相反,是指它的边数相对于节点数比较大或者多。也就是说,稠密图中节点之间的连接比较多,大部分节点之间都有边相连。例如完全图就是一种稠密图,其中每个节点都与其他节点相连。

(4)权和网:

(weight)是指每条边或每个顶点上具有的数值,称为权值,常用于表示路径的长度或者边的距离等。在最短路径、最小生成树等算法中起到重要作用。

(network)是指带有权值的图,也叫带权图。在网中,每条边都有一个权值,常用于表示距离、耗费、强度等概念。常见的网包括最短路径问题中的有向带权图、最小生成树问题中的无向带权图等。

(5)邻接点:对于无向图G,如果图的边(v,v')\inE,则称顶点v和v'互为邻接点,即v和v'相邻接。边(v,v')依附于顶点v和v'或者说边(v,v')与顶点v和v'相关联。简单的说就是图中有边相连相邻的两个顶点,它们互为邻接点

(6)度、出度和入度:顶点v的度是指与v相关联的边的数目,记作TD(v)。对于有向图,顶点v的度分为入度和出度。入度是以顶点v为头的弧的数目(箭头指向的顶点为头),记作ID(v)出度是以顶点v为尾的弧的数目,记作OD(v)。顶点v的度TD(v)=ID(v)+OD(v)。

(7)路径和路径长度:路径是指沿着图中的边从一个顶点到另一个顶点的一系列顶点。如果这个路径中的所有边都是有向的,则称为有向路径;如果这个路径中的所有边都是无向的,则称为无向路径。路径长度是指路径中经过的边或弧的数量。

  (8)回路或环:如果一个路径从一个顶点开始并以同一顶点结束,则称为回路或环

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

(10)连通、连通图和连通分量:连通是指两个顶点间存在一条路径。连通图指一个无向图中任意两个顶点之间都存在一条路径。无向图可以分成两种类型:连通的无向图、不连通的无向图。连通的无向图只有一个极大连通子图,即它本身,因为不存在另一个连通的子图包含的点和边比它本身还要多,所以叫作极大连通子图。不连通的无向图可以拆分为若干个连通的无向图,如果我们在拆分时注意把能连通的点边都放在一个连通子图中,使这个连通子图足够大,以至于再多包含一个点或边它就变成不连通的了,我们称这个连通子图为极大连通子图,也叫连通分量

(11)强连通图和强连通分量:强连通图指在有向图G中,如果对于每一对vi、vj,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图。 有向图中的极大强连通子图称做有向图的强连通分量。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_73070900/article/details/130709121

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签