首页 > 编程语言 >数据结构与算法分析——C语言描述(第9章 图论算法)*

数据结构与算法分析——C语言描述(第9章 图论算法)*

时间:2022-10-03 20:33:24浏览次数:55  
标签:图论 有向图 一个 路径 连通 C语言 算法 一条 顶点

目录

9.1 若干定义

一个(graph)\(G=(V, E)\)由顶点(vertex)的集\(V\)和(edge)/(arc)的集\(E\)组成。
每一条边就是一幅点对\((v, w)\),其中\(v, w\in V\)。如果点对是有序的,那么图就是有向(directed)的——有向图(digraph)。
顶点\(v\)和\(w\)邻接(adjacent)当且仅当\((v, w)\in E\)。在一个具有边\((v, w)\)从而具有边\((w, v)\)的无向图(undigraph)中,\(w\)和\(v\)邻接且\(v\)也和\(w\)邻接。
有时候边还具有第三种成分,称作(weight)或(cost)。

图中的一条路径(path)是一个顶点序列\(w_1, w_2, w_3, …, w_N\)使得\((w_i, w_{i+1})\in E\),\(1\leqslant i<N\)。这样一条路径的(length)是该路径上的边数\(N-1\)。
如果图含有一条从一个顶点到它自身的边\((v, v)\),那么路径\(v, v\)有时候也叫作一个(loop)。(我们要讨论的图一般是无环的)
简单路径:其上的所有顶点都是互异的,但第一个顶点和最后一个顶点可能相同。
有向图中的(cycle)是满足\(w_1=w_N\)且长至少为1的一条路径;如果该路径是简单路径,那么这个圈就是简单圈。如果一个有向图没有圈,则称其为无圈的(acyclic)。一个有向无圈图有时也简称为DAG。(无向图中\((u, v)\)和\((v, u)\)是同一条边,圈无意义)
一个无向图中从每一个顶点到每个其他顶点都存在一条路径——连通的(connected)。
一个有向图中从每一个顶点到每个其他顶点都存在一条路径——强连通的(strongly connected)。
一个有向图不是强连通的,但其基础图(underlying graph),即其弧上去掉方向所形成的图,是连通的——弱连通的(weakly connected)。
每一对顶点间都存在一条边——完全图(complete graph)。

图的表示

标签:图论,有向图,一个,路径,连通,C语言,算法,一条,顶点
From: https://www.cnblogs.com/kirin-dev/p/Data-Structures_Chapter-9.html

相关文章

  • AcWing 算法提高课 拓展欧几里得算法 同余
    拓展欧几里得算法:1、模板:https://www.cnblogs.com/ydUESTC/p/16676229.html2、原理: 3、应用:拓展欧几里得算法解线性同余方程:  4、例题:(1)线性同余方程:https://w......
  • 数据结构与算法分析——C语言描述(第5章 散列)
    目录5.1一般想法5.2散列函数5.3分离链接法(separatechaining)5.4开放定址法(openaddressing)本章讨论散列表(hashtable)ADT,不过它只支持二叉查找树所允许的一部分......
  • 【C语言_13】多维数组
    1.什么是多维数组?   C语言中的多维数组(multidimensionalarray)其实就是使用数组作为数组的元素。n维数组的元素是n-1维数组。例如,二维数组的每个元素都是一维数......
  • 算法分析相关概念
    算法分析相关概念算法的时间复杂度时间复杂度的分析注意事项同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不相同。所以,......
  • C语言——数据的存储(总结)
    一.数据类型    基本类型    打印类型所占大小(字节)char     字符型    %c  1short    短整型    %d    2int ......
  • 02 线性表 | 数据结构与算法
    1.线性表线性表的定义特点:存在唯一一个被称为第一个的数据元素存在唯一一个被称为最后一个的数据元素除了第一个元素之外,其他的数据元素都有唯一一个直接前驱除......
  • 01 入门 | 数据结构与算法
    1.数据数据:数据是指对客观事物进行记录并且可以可以鉴别的抽象符号数据元素:数据的基本单位,在计算机当中作为一个整体考虑数据对象:具有相同性质的数据元素的集合数据......
  • 自适应滤波之RLS算法
    前言LMS算法的主要优点在于它的计算简单,然而为此付出的代价是缓慢的收敛速度,特别是当自相关矩阵\(\pmb{\varGamma}_M\)的特征值具有较大范围时。从另一个观点来看,LMS算法......
  • C语言与汇编
    C变量C语言是如何把各种类型的变量转换成对应的汇编语言呢?高级语言更容易被工程师理解,而汇编语言这样的低级语言,则更容易被机器解读。这是因为汇编语言里的大部分内容都......
  • 多点DLT (Direct Linear Transformation) 算法
    阅读前可以先参看上一篇代数视觉博客:四点DLT(DierctLinearTransformation)算法对于大于4个点的数据点来进行DLT算法变换,如果数据点的标注都十分准确,那么将所有......