找到 34423 篇文章,关于编程

C++ 程序:查找图的边连通性

Arjun Thakur
更新于 2019年7月30日 22:30:25

472 次浏览

在这个程序中,我们需要找到图的边连通性。图的边连通性是指它是桥,移除它会导致图断开连接。在断开的无向图中,移除桥会增加连通分量的数量。函数和伪代码:开始    函数 connections() 是一个递归函数,用于找出连接:    A) 将当前节点标记为未访问。    B) 初始化时间和低值    C) 遍历与该节点相邻的所有顶点    D) 检查以 x 为根的子树是否与一个... 阅读更多

C++ 程序:在 DAG(有向无环图)中查找 SSSP(单源最短路径)

Arjun Thakur
更新于 2019年7月30日 22:30:25

2K+ 次浏览

这是一个 C++ 程序,用于使用 Dijkstra 算法在 DAG(有向无环图)中查找 SSSP(单源最短路径),以找出从图中的第一个节点到其他每个节点的最短路径长度,并在每个顶点对旁边显示。算法开始    将图的元素作为输入。    函数 shortestpath():    初始化变量    a[i] = 1    d[i] = 0    s[i].from = 0    初始化循环,对于 i = 0 到 3 执行       如果 b[0][i] == 0          继续       否则   ... 阅读更多

C++ 程序:查找图中两个节点之间的路径

Arjun Thakur
更新于 2019年7月30日 22:30:25

698 次浏览

在这个程序中,我们可以通过在给定图上使用 DFS 来找出是否存在两个节点之间的路径。算法开始    函数 isReach() 是一个递归函数,用于检查 d 是否可以到达 s:    A) 将所有顶点标记为未访问。    B) 将当前节点标记为已访问并将其入队,它将用于获取顶点的所有相邻顶点    C) 将一个顶点出队并打印它    D) 获取出队顶点 s 的所有相邻顶点    E) 如果一个相邻顶点尚未访问,则将其标记为... 阅读更多

C++ 程序:查找图中割点的数量

Arjun Thakur
更新于 2019年7月30日 22:30:25

443 次浏览

图中的割点(或割顶)是一个点,如果移除它(以及通过它的边),则会断开图的连接。对于断开的无向图,割点是一个顶点,移除它会增加连通分量的数量。算法开始    我们在这里使用 dfs 来查找割点:    在 DFS 中,如果满足以下两个条件之一,则顶点 w 是割点。    1) w 是 DFS 树的根,并且它至少有两个子节点。    2) w 不是 DFS 树的根,并且它有一个子节点 x,使得没有顶点... 阅读更多

C++ 程序:查找循环图的色数

Paul Richard
更新于 2019年7月30日 22:30:25

478 次浏览

色数是给定图的边着色所需的颜色的最大数量。这是一个 C++ 程序,用于查找循环图的色数。算法开始    输入顶点数 'n' 和边数 'e'。    输入图中 'e' 条边的 'e' 个顶点对,存放在 edge[][] 中。    函数 ChromaticIndex(),对图的边进行着色:    A) 将颜色 c 分配给当前边。    B) 如果任何相邻边具有相同的颜色,则丢弃此颜色并再次转到标记,然后... 阅读更多

C++ 程序:检查给定有向图是否为弱连通或强连通

Arjun Thakur
更新于 2019年7月30日 22:30:25

216 次浏览

对于给定的有向图,可以使用 DFS 找出它是弱连通还是强连通。这是一个关于此问题的 C++ 程序。使用的函数开始    函数 fillorder() = 用所有顶点填充堆栈。    a) 将当前节点标记为已访问并打印它    b) 对与该顶点相邻的所有顶点进行递归    c) 到目前为止,已处理从 v 可达的所有顶点,将 v 推入堆栈 结束 开始    函数 DFS():    a) 将当前节点标记为已访问并打印它    b) 对与该顶点相邻的所有顶点进行递归 ... 阅读更多

C++ 程序:检查给定图中是否存在哈密顿回路或路径

Paul Richard
更新于 2019年7月30日 22:30:25

1K+ 次浏览

哈密顿回路是一个哈密顿路径,使得从哈密顿路径的最后一个顶点到第一个顶点存在一条边(在图中)。它在无向图中是一条访问图中每个顶点恰好一次的路径。函数和用途:开始    1.函数 isSafe() 用于检查它是否与先前添加的顶点相邻且尚未添加。    2.函数 hamiltonianCycle() 解决哈密顿问题。    3.函数 hamCycle() 使用 hamiltonianCycle() 来解决哈密顿问题。      如果不存在可能的哈密顿回路,则返回 false,... 阅读更多

C++ 程序:应用 DFS 对有向无环图进行拓扑排序

Arjun Thakur
更新于 2019年7月30日 22:30:25

1K+ 次浏览

DAG(有向无环图)的拓扑排序是顶点的线性排序,对于每个有向边 uv,顶点 u 在排序中出现在 v 之前。如果图不是 DAG,则无法对图进行拓扑排序。函数和伪代码开始    函数 topologicalSort():    a) 将当前节点标记为已访问。    b) 对与该顶点相邻的所有顶点进行递归。    c) 将当前顶点推入存储结果的堆栈中。 结束 开始    函数 topoSort() 使用递归的 topologicalSort() 函数:    a) 标记所有未访问的顶点。   ... 阅读更多

C++ 程序:查找图矩阵的逆矩阵

Paul Richard
更新于 2019年7月30日 22:30:25

8K+ 次浏览

这是一个 C++ 程序,用于查找图矩阵的逆矩阵。矩阵的逆矩阵仅在矩阵是非奇异的,即行列式不为 0 时才存在。可以使用多种方法找到矩阵的逆矩阵。在这里,我们使用伴随矩阵及其行列式来找到图矩阵的逆矩阵。示例中涉及的步骤开始    函数 INV() 获取矩阵的逆矩阵:    调用函数 DET()。    调用函数 ADJ()。    使用公式查找矩阵的逆矩阵;    Inverse(matrix) = ADJ(matrix) / DET(matrix) 结束。示例#include using namespace std; #define N 5 ... 阅读更多

C++ 程序:使用 DFS 检查图是否为二分图

Arjun Thakur
更新于 2019年7月30日 22:30:25

207 次浏览

如果可以使用两种颜色对图进行着色,即一组顶点使用相同的颜色着色,则该图是二分图。这是一个 C++ 程序,用于使用 DFS 检查图是否为二分图。算法开始    1.数组 color[] 用于存储每个节点的 0 或 1,表示相反的颜色。    2.从任何节点调用函数 DFS。    3.如果节点 w 以前未被访问过,则分配 !      color[v] 到 color[w] 并再次调用 DFS 以访问与 w 相连的节点。 ... 阅读更多

广告

© . All rights reserved.