使用 C++ 计算从源到目的地的所有可能路径,其中恰好有 k 条边
c++server side programmingprogramming
在本教程中,我们将讨论一个程序,用于查找从源到目的地的恰好有 k 条边的路径数。
为此,我们将提供一个图表以及源和目的地的值。我们的任务是找到从源到目的地的所有可能路径,其中恰好有 k 条边。
示例
#include <iostream> using namespace std; #define V 4 //使用递归计算路径数 int countwalks(int graph[][V], int u, int v, int k){ if (k == 0 && u == v) return 1; if (k == 1 && graph[u][v]) return 1; if (k <= 0) return 0; int count = 0; //移动到相邻节点 for (int i = 0; i < V; i++) if (graph[u][i] == 1) count += countwalks(graph, i, v, k-1); return count; } int main(){ int graph[V][V] = { {0, 1, 1, 1}, {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 0, 0} }; int u = 0, v = 3, k = 2; cout << countwalks(graph, u, v, k); return 0; }
输出
2