If the 'root' node has to be such that the height of the resultant
tree should be minimum, then this root node must lie in the middle of
the largest possible path between any 2 points in this graph.

Given above, start doing a DFS from any arbitrary node. This is doable
in O(n). It will return return the heights of all its sub-trees. Pick
up the top 2 heights (say a, b where a > b). The longest path now in
this graph is of length a + b. The root should lie at a+b/2 from
either ends, which is at distance a-(a+b/2) from the current node.

Thanks,
Satish

On Oct 29, 6:22 pm, "Yingjie Xu" <[EMAIL PROTECTED]> wrote:
> Calculate center of a tree, can be solved in O(n).
>
> On 10/25/07, dkrai <[EMAIL PROTECTED]> wrote:
>
>
>
> > Another approach can be to eliminate leaf nodes iteratively from tree.
> > At last only root node or nodes on same level will  be left.
>
> > Adjency list representation of graph will make it easier to
> > imlplement.
> > Run time cost will be O(n*n)
>
> > On Oct 24, 12:37 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
> > wrote:
> > > Two methods:
> > >  1. try BFS on each vertex, calculate the longest shortest path to
> > > each other vertex, compare them
> > >      It is easy to implement, but gives O(n*n) running time
>
> > >  2. divide and conquer
> > >      randomly divide the tree into two parts, calculate the height of
> > > the two subtrees then merge them.
> > >      This is not so easy to implement, but really gives a good running
> > > time which is O(nlogn)
>
> > > On Oct 21, 9:21 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
>
> > > > Q) You are given a root-less tree  (which can also be thought of as an
> > > > undirected acyclic connected graph). The problem is to choose one of
> > > > the nodes from the tree as root such that the height of the resultant
> > > > tree is minimum.
>
> > > > Device an appropriate data-structure and write a program for the
> > > > same.
> > > > mum height possible is 2. So for this example the code should return
> > > > the node '3'.
>
> > > > Note: All nodes are numbered from 1 to n, where 'n' is the number of
> > > > nodes. Incase there are more than one roots possible, then your
> > > > program can return any one of them.- Hide quoted text -
>
> > > - Show quoted text -


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to