I have an array of integers representing connectivity of nodes.Consider the following states of the array after each time it's changed:
0|1|2|3|4|5|6|7|8|9 => Root of each node is itself
0|1|2|3|3|5|6|7|8|9 => The root of 4 is 3
0|1|2|8|3|5|6|7|8|9 => The root of 3 is 8, so now 8 is root for 3 as well as 4.
And so on..
Each time two nodes get connected the array changes. I need to draw a tree representing the array state after each connection action. This is what I need to draw:
It's taken from Robert Sedgewick and Kevin Wayne's Algorithms book.
I've been banging my head against the wall but haven't been able to figure out what strategy I should take to solve this. Should I record the depth of the tree and draw level by level, or should I loop through the array one by one and draw the complete structure of each node with its children? I don't have a clue how to proceed with either way anyway. So I'd appreciate if someone could shed some light on this.