This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
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

Win a copy of REST with Spring (video course) this week in the Spring forum!
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: 11923

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: 20192

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
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
subject: recursive tree
It's not a secret anymore!