File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes recursive tree Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "recursive tree" Watch "recursive tree" New topic

recursive tree

Pat Peg
Ranch Hand

Joined: Feb 04, 2005
Posts: 195
I have a group of object, each object knows it’s ID and it’s parent ID (if it has one).

I have a method call that will return a List of objects based on a parent ID.

public List<MyRecords> getChildRecords(Long recordID)…

what I need to do is create a method that will return all the objects after I have gotten the root object. I would like to do this recursively.

And in case you are wondering, no this isn’t a class assignment or anything. It is just that looking at the problem I am thinking it would probably be a good example of where to do recursion but I just can’t wrap my head around it right now.

Pat Peg
Ranch Hand

Joined: Feb 04, 2005
Posts: 195
and to give an example of what the data might look like

sorry if the formatting got lost....
fred rosenberger
lowercase baba

Joined: Oct 02, 2003
Posts: 11955

I wrapped your data in code tags. while it's not actually code, doing that will preserve the formatting.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Rob Spoor

Joined: Oct 27, 2005
Posts: 20274

The algorithm as I've described before:
1) use a Map<ID,Node> to first store the nodes unlinked to their parent nodes. They will need a parent ID though.
2) iterate over the nodes, lookup the parent node in the map using the parent ID, and link together.

How To Ask Questions How To Answer Questions
I agree. Here's the link:
subject: recursive tree
jQuery in Action, 3rd edition