This is the problem : if(dfs(rootNode->getEdge(i),key) != NULL){ return dfs(rootNode->getEdge(i),key); } You are calling dfs twice here on the same node. The second time you call it, rootNode->visited will be true. In this situation, your code returns NULL. To fix it, change the if block to Node<T>* val = dfs(rootNode->getEdge(i),key);...

The graph G(V, E), as stated in the original question, is undirected. Consider any pair of nodes u, v \in V such that there is an edge (u, v) \in E. Now lets traverse the graph in DFS (depth-first search): if we reach u first, we will eventually visit all...

c++,algorithm,dynamic-programming,backtracking,dfs

Given a NxN grid, let ways[i][j] = number of possible paths from grid[0][0] to grid[i][j] initialize grid[0][0] = 1 if grid[i][j] is dead, ways[i][j] = 0 else ways[i][j] = ways[i-1][j] + ways[i][j-1] (but be careful with the edge) An example: grid:(1 means dead) ways: 0 0 1 0 0 1...

Everything needs an end. Simplest recursive: calc(factorial) { if (factorial == 0) return 1; else return calc(factorial - 1) * factorial; } ...

elasticsearch,apache-spark,hdfs,dfs,elasticsearch-hadoop

Spark uses the hadoop-common library for file access, so whatever file systems Hadoop supports will work with Spark. I've used it with HDFS, S3 and GCS. I'm not sure I understand why you don't just use elasticsearch-hadoop. You have two ES clusters, so you need to access them with different...

Arrange everyone in a circle. For even k, have everyone be friends with the people within k/2 spots from them. For odd k and even n, have everyone be friends with the people within (k-1)/2 spots from them and the person across from them. For odd k and odd n,...

You will need to create a Hadoop file system driver for your new file system. This would be a class that extends org.apache.hadoop.fs.FileSystem. Examples of such 'drivers' are the well known DistributedFileSystem aka. HDFS, the LocalFilesystem or S3FileSystem etc. You then have to register your new file system with a...

java,hadoop,hdfs,dfs,distributed-filesystem

I hope you need to used hadoop jars and also need the FileSystem to read from HDFS. Something like below and then your code. Path pt=new Path("hdfs://user/hdfs/my_props.properties"); FileSystem fs = FileSystem.get(new Configuration()); Refer : FileInputStream for a generic file System...

This should work: public static void PrintDFS(){ int source = 0; int numberOfNodes = arr[source].length; int [] visited = new int[numberOfNodes]; int v; stack.push(source); while (!stack.isEmpty()){ v = stack.pop(); if(visited[v]==0) { visited[v] = 1; System.out.println(v); for(int i=0;i<numberOfNodes;i++){ if(arr[v][i]==1) stack.push(i); } } } } The main issue in the original code...

Instead of having a global variable tracking depth, it can be a parameter to the next iteration. void DFS(int s, int d) { visited[s]=true; cout<<s<<" "; dist[s]=d; for(int i=0;i<v[s].size();i++) { if(!visited[v[s][i]]) { DFS(v[s][i], d+1); } } } ...

If and only if, at some point during kahn's algorithm has no source to choose (and the remaining graph is still none empty), there is a cycle Proof: Direction1 <--: If there is a cycle, let it be v1->v2->v3->vk->v1. At each step of the algorithm, none of v1,v2,...,vk is a...

It has all the info about BFS and DFS and why they used? And also relation between them. http://www.ics.uci.edu/~eppstein/161/960215.html BFS Animation https://www.cs.usfca.edu/~galles/visualization/BFS.html DFS Animation https://www.cs.usfca.edu/~galles/visualization/DFS.html I hope it helps you!...

You've defined i with global scope so each time you hit a recursive call to the parent it gets incremented and you jump out of the loop in the caller. In both of your for loops change: for(i=0... to for(var i=0... That way each loop has its own instance of...

c++,algorithm,recursion,depth-first-search,dfs

The following change to your code should help: int Search::DFSUtil(std::string search_key, Graph& x, int current_node, Color(visited_nodes)[], bool& goal_f){ visited_nodes[current_node-1] = GREY; //-1 because array index start from 0 but nodes index on the graph starts from 1 if(x.get_node_value(current_node) == search_key ){ goal_f = 1; return current_node; } else{ std::queue <int>...

algorithm,graph,computer-science,graph-algorithm,dfs

Step 0: If there is no path from v to t, then answer is NO. Step 1: Make the graph G' after collapsing all the strongly connected components of G. Step 2: If the vertex 'v' is a part of some SCC consisting of more than 1 vertex, then there...

Removed the "file:" from the hdfs-site.xml file [WRONG HDFS-SITE.XML] <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hduser/mydata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hduser/mydata/hdfs/datanode</value> </property> [CORRECT HDFS-SITE.XML] <property> <name>dfs.namenode.name.dir</name> <value>/home/hduser/mydata/hdfs/namenode</value>...

The answer involving passing and returning state or using a state monad is more transparent than this approach, but as mentioned in the paper below, it's not as efficient and doesn't generalize well. That said, whatever your needs in this answer, it's worth learning about state monads and working with...

I was confused with the check for parent[v] !== y but I guess it makes sense in the unweighted graph case, if we have a graph with just two nodes, both nodes have each other in their adjacency so this is not a cycle. I'm not clear though on...

java,recursion,matrix,path,dfs

There seem to be several problems with your DFS algorithm: by creating a new visited list in each recursive call, it always contains only the current node you are only adding nodes to this.path, but never removing nodes that did not lead to the goal you never check whether one...

java,c++,algorithm,recursion,dfs

In the line res.add(temp); temp is a reference. You are adding a reference to the same list (itemList) every time you add it. Try changing it to something list res.add(new ArrayList(temp)); so that it copies the list instead....

algorithm,graph,directed-graph,dfs,bfs

If you want to figure out your digraph is strongly connected there are several algorithm for that and in wiki you can find this three: Kosaraju's algorithm Tarjan's algorithm Path-based strong component algorithm If you want to check if your digraph is just connected or not, you can simply assume...

Your preOrder function does not always return a value. If srcNode is nullptr you should return nullptr. Your compiler should be warning you about this! If it is not, then change your compiler settings, or get a better compiler. Edit: Also - you should check that res is not nullptr...