aspose file tools*
The moose likes Beginning Java and the fly likes Depth first search recursive, problem on graph[picture + code] Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Depth first search recursive, problem on graph[picture + code]" Watch "Depth first search recursive, problem on graph[picture + code]" New topic
Author

Depth first search recursive, problem on graph[picture + code]

mandlar suurla
Ranch Hand

Joined: Jun 11, 2008
Posts: 67

Well i got graph and i have to get path to the number what is searched. Like in example n1.dfs(visited, 15); should end on when 15 is found but it wont currently. As you can see it visits all nodes, but how would i extract from visited nodes the path.
Also when i reach end it keeps visiting sub nodes.

Full graph is here http://img19.imageshack.us/i/graphsz.png/

Node.java


Test.java

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38865
    
  23
What sort of data structure is that? It looks to me like a binary tree. So what is the algorithm for a depth first search? If you are getting the wrong result you are using the wrong algorithm. What do you mean by path? Are you going to have a linked list of nodes to the number sought? Or a String?

You will have to use the very expensive hardware I so often recommend: a Cray occupying a building the size of a cinema pencil, eraser, and sheet of paper. ?Write down how you are going to tell whether you have found a value, and how you are going to add it to a path. Since it is recursive, start with a little tree, like this oneThen take your recursion one level higherand work out how you are to handle something likeGet that sort of thing working, and it becomes easy to scale up for recursion over any kind of tree. You can work out the depth at which you found the value, from the length of the path.
mandlar suurla
Ranch Hand

Joined: Jun 11, 2008
Posts: 67

Campbell Ritchie wrote:What sort of data structure is that? It looks to me like a binary tree. So what is the algorithm for a depth first search? If you are getting the wrong result you are using the wrong algorithm. What do you mean by path? Are you going to have a linked list of nodes to the number sought? Or a String?

You will have to use the very expensive hardware I so often recommend: a Cray occupying a building the size of a cinema pencil, eraser, and sheet of paper. ?Write down how you are going to tell whether you have found a value, and how you are going to add it to a path. Since it is recursive, start with a little tree, like this oneThen take your recursion one level higherand work out how you are to handle something likeGet that sort of thing working, and it becomes easy to scale up for recursion over any kind of tree. You can work out the depth at which you found the value, from the length of the path.
I am sorry that i draw the binary tree, i forgot to mention the cycles are allowed like node 5 and 10 could be connected. It needs to find path between 2 nodes, no dijkstra and A* algorithms( i dont need to find shortest). Currently my code traverses all the nodes and doesn't deal with path finding. So i tought i need Stack to hold path, but how i know which element is part of path.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38865
    
  23
Don't know offhand. It is easy enough to find the shortest path through a binary tree, but I can't remember offhand how you do it through a graph with rejoining.

Again, you will have to write down the algorithm, and convert it to pseudo-code, and show us all that. Then we can see whether your code matches it. And you will have to beware of a graph which runs like this . . . for obvious reasons
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Depth first search recursive, problem on graph[picture + code]