📝 图论教程

525篇技术文档
  讨论图论

📅  最后修改于: 2021-01-07 05:41:43        🧑  作者: Mango

本教程简要介绍了图论的基础。它以易于阅读的样式编写,涵盖了图形的类型,其属性,树,图形的可遍历性以及覆盖,着色和匹配的概念。...

  检查数组是否可以仅使用给定索引之间的交换进行排序

📅  最后修改于: 2021-10-25 03:06:22        🧑  作者: Mango

给定一个大小为N的数组arr[]由范围[0, N – 1] 中的不同整数组成,这些整数以随机顺序排列。还给出了几对,其中每对表示可以交换数组元素的索引。允许的掉期数量没有限制。任务是找出是否可以使用这些交换按升序排列数组。如果可能,则打印Yes否则打印No。例子:Input:arr[] = {0, 4, 3, 2, 1, 5}, pairs[][] = {{1, 4}, {2, 3}}Output...

  将邻接表转换为图的邻接矩阵表示

📅  最后修改于: 2021-10-25 03:06:34        🧑  作者: Mango

给定Graph的邻接表表示,任务是将给定的邻接表转换为邻接矩阵表示。例子:Input:adjList[] = {{0 –> 1 –> 3}, {1 –> 2}, {2 –> 3}}Output:0 1 0 10 0 1 00 0 0 10 0 0 0Input:adjList[] = {{0 –> 1 –> 4}, {1 –> 0 –> 2 –> 3 –> 4}, {2 –> 1 –> 3}, {...

  图同态

📅  最后修改于: 2021-10-25 03:06:46        🧑  作者: Mango

图G是一组顶点和一组连接这些顶点的边的集合。它由两组组成:顶点集:V = {v1, v2, …, vn}边集:E = {e1, e2, …, en}图 G 表示为 G = (V, E)。图的同态:图同态是两个图之间的映射,尊重它们的结构,即将一个图的相邻顶点映射到另一个图的相邻顶点。从图G到图H 的同态是从VG到VH 的映射这需要边到边。定义:从图G = (V, E)到图G’ = (V’, E’)...

  字梯 – 设置 2(双向 BFS)

📅  最后修改于: 2021-10-25 03:06:58        🧑  作者: Mango

给定一本字典,两个单词start和target(长度相同)。如果存在,则查找从开始到目标的最小链的长度,使得链中的相邻单词仅相差一个字符,并且链中的每个单词都是有效单词,即存在于字典中。可以假设目标词存在于词典中,并且所有词典词的长度相等。例子:Input:Dictionary = {POON, PLEE, SAME, POIE, PLEA, PLIE, POIN}start = “TOON”ta...

  无向图到有向欧拉电路的转换

📅  最后修改于: 2021-10-25 03:07:10        🧑  作者: Mango

给定一个具有V 个节点(编号从 1 到 V)和E 条边的无向图,任务是检查该图是否为欧拉图,如果是,则将其转换为有向欧拉回路。ADirected Euler Circuitis a directed graph such that if you start traversing the graph from any node and travel through each edge exactly...

  使用邻接矩阵实现BFS

📅  最后修改于: 2021-10-25 03:07:22        🧑  作者: Mango

本文讨论了广度优先搜索 (BFS),它使用邻接表来表示图形。在本文中,将使用邻接矩阵来表示图。邻接矩阵表示:在图的邻接矩阵表示中,大小为 n*n(其中 n 是顶点数)的矩阵mat[][]将表示图的边,其中mat[i][j] = 1表示顶点i和j之间有边,而mat[i][j] = 0表示顶点i和j之间没有边。下面是上图所示图形的邻接矩阵表示:例子:方法:创建一个大小为 n*n 的矩阵,其中每个元素都...

  最短路径属性

📅  最后修改于: 2021-10-25 03:07:34        🧑  作者: Mango

最短路径问题是在图中找到两个顶点(或节点)之间的路径的问题,使得其组成边的权重之和最小。图的任意两个节点之间的最短路径可以使用许多算法来建立,例如 Dijkstra 算法、Bellman-Ford 算法、Floyd Warshall 算法。有一些寻找最短路径的特性,基于这些特性,寻找最短路径的算法是有效的:最优子结构属性最短路径的所有子路径也必须是最短路径。如果两个节点 U和V之间存在最短路径长度...

  无向加权图中最短路径的数量

📅  最后修改于: 2021-10-25 03:07:45        🧑  作者: Mango

给定一个加权无向图G和一个整数S,任务是打印最短路径的距离以及每个节点从给定顶点S 开始的最短路径数。例子:Input:S =1, G =Output:Shortest Paths distances are : 0 1 2 4 5 3 2 1 3Numbers of the shortest Paths are: 1 1 1 2 3 1 1 1 2Explanation:The distance...

  使用 DFS 按节点的字典顺序遍历图

📅  最后修改于: 2021-10-25 03:07:58        🧑  作者: Mango

给定一个图G由N 个节点组成,一个源S和一个类型为{u, v}的数组Edges[][2]表示节点u和v之间存在无向边,任务是遍历使用 DFS 按字典顺序绘制图形。例子:Input:N = 10, M = 10, S = ‘a’, Edges[][2] = { { ‘a’, ‘y’ }, { ‘a’, ‘z’ }, { ‘a’, ‘p’ }, { ‘p’, ‘c’ }, { ‘p’, ‘b’ }, ...

  用补码在图中寻找最大独立集的Java程序

📅  最后修改于: 2021-10-25 03:08:10        🧑  作者: Mango

在具有 V 个顶点和 E 条边的图中,LIS(最大独立集)是图中所有没有通过 E 条边相互连接的顶点的集合。方法 :我们创建了一个 HashMap,它有一对整数和一个整数作为参数。该对表示两个顶点,整数表示这两个顶点之间的边。我们遍历所有顶点并检查两个特定顶点之间是否存在边。如果这个条件失败,我们将这些顶点附加到我们的结果 HashSet – 独立集。这样,所有的独立集合都被添加到 HashSet...

  在有向图中打印负权重循环

📅  最后修改于: 2021-10-25 03:08:22        🧑  作者: Mango

给定一个由V个顶点和E 个边组成的加权有向图。任务是打印权重和为负的循环路径。如果不存在这样的路径,则打印“-1”。Input:V = 5, E = 5, Below is the graph:Here, for the given negative cycle o/p (1->2->3->4->1) ; In fig there has to be Edge from 4–>1  not fro...

  查找距离相等的节点对的数量

📅  最后修改于: 2021-10-25 03:08:36        🧑  作者: Mango

给定一个具有N 个节点和N-1 条边的连通无环图,找出彼此距离相等的节点对。例子:方法:假设一个图有 6 个级别(0 到 5),级别 0、2、4 的距离相等,但级别 1、3、5 的距离也是均匀的,因为它们的差异是 2,这是偶数,因此我们必须兼顾两者条件即计算偶数和奇数。给定的问题可以通过执行 dfs 遍历来解决选择任意一个源节点作为root,进行dfs遍历并维护访问过的节点用于执行 dfs 和 d...

  检查基于给定条件从数组构造的图是否包含循环

📅  最后修改于: 2021-10-25 03:08:48        🧑  作者: Mango

给定一个由前N 个自然数组成的数组arr[],使用数组元素构造一个无向图,使得对于任何数组元素,将一条边与左侧和右侧的下一个更大的元素连接起来。例子:Input:arr = {1, 2, 3, 4, 5}Output:NoExplanation:It is clear from the below image that final graph will be a tree.Input:arr[] ...

  检查满足给定条件的图中是否存在长度为 3 的循环

📅  最后修改于: 2021-10-25 03:09:00        🧑  作者: Mango

给定一个由N 个整数组成的数组 Arr表示图的节点。边是在按位 AND 不等于0 的那些对之间定义的。任务是找出图中是否存在长度为 3 的循环。例子:Input:Arr[] = {26, 33, 35, 40, 50}Output:YesA cycle exists between 26, 33 and 50.Input:Arrr[] = {17, 142, 243, 300}Output:No编...