38 std::vector<bool>& visited) {
44 std::uint32_t path_count = 0;
46 for (std::uint32_t i = 0; i < n; i++) {
47 if (A[u][i] == 1 && !visited[i]) {
88 std::vector<std::vector<std::uint32_t>> graph1 = {
95 std::uint32_t n1 = 5, u1 = 0, v1 = 4;
99 std::vector<std::vector<std::uint32_t>> graph2 = {
106 std::uint32_t n2 = 5, u2 = 0, v2 = 4;
110 std::vector<std::vector<std::uint32_t>> graph3 = {
117 std::uint32_t n3 = 5, u3 = 0, v3 = 4;
121 std::vector<std::vector<std::uint32_t>> graph4 = {
124 std::uint32_t n4 = 1, u4 = 0, v4 = 0;
128 std::vector<std::vector<std::uint32_t>> graph5 = {{}};
129 int n5 = 0, u5 = 0, v5 = 0;
133 std::vector<std::vector<std::uint32_t>> graph6 = {
138 int n6 = 3, u6 = 0, v6 = 5;
141 std::cout <<
"All tests have successfully passed!\n";
std::uint32_t count_paths(const std::vector< std::vector< std::uint32_t > > &A, std::uint32_t u, std::uint32_t v, std::uint32_t n)
Counts the number of paths from node u to node v in a directed graph using Depth First Search (DFS)
std::uint32_t count_paths_dfs(const std::vector< std::vector< std::uint32_t > > &A, std::uint32_t u, std::uint32_t v, std::uint32_t n, std::vector< bool > &visited)
Helper function to perform DFS and count the number of paths from node u to node v