@Priyanka - what exactly is the difference between extra space and auxiliary
space? As far as the algorithm is concerned, it does use space whose order
of growth is a function of the input size and that is all that matters here.

On Wed, Jan 26, 2011 at 7:55 AM, may.I.answer <may.i.answ...@gmail.com>wrote:

> Well the solution is pretty simple.
> What you have to do is just do inoder traversal of tree in reverse
> order.
>
> Here goes my C++ code for that
> int ith_order(Tree *root,int i)
> {
>        static int c;
>        static int ans;
>        if(root)
>        {
>                ith_order(root->right,i);
>                ++c;
>                if(c==i)
>                        return ans=root->data;
>
>                 ith_order(root->left,i);
>
>        }
>        return ans;
> }
>
> please correct me if i am wrong :)
> On Jan 26, 5:01 pm, sankalp srivastava <richi.sankalp1...@gmail.com>
> wrote:
> > I don't seem to understand ur solution .
> > [quote] For every none leaf node , go to the last node in it's left
> > subtree and mark the right child of that node as x [\quote]. How are
> > we going to refer to the right child now ??We have removed it's
> > reference now !!
> >
> > It is to be repeated for every node except the non leaf nodes . This
> > will take O(n*n) time in worst case , say a leftist tree with only
> > left pointers . root makes n-1 traversals , root's left subtree's root
> > makes n-2 , and so on.
> >
> > Go to the largest node in the left subtree .This means go to the left
> > subtree and keep on going to the right until it becomes null  , in
> > which case  , you make y->right as x . This means effectively , that y
> > is the predecessor of x , in the tree . Considering a very good code ,
> > it may take O(1) space , but you will still need additional pointers.
> > Take the case below .
> >
> >         1
> >    2         3
> > 1      1.5   2.5       4
> >
> > for node 2 , you will go to 1 , which is the successor of 2 , you make
> > 2->right=1 .... but what about node 1.5 ???
> > same is the case with node 3 ... 3->right=2.5 . How will we refer to 4
> > now ??
> >
> > Now using inorder traversal with a count , I will start at 1->left ,
> 2->left = 1 , then 2 ... then 2->right = 1 again . then 1 , and then 1-
> > >right=3 ...clearly , this will not give us a solution .
> >
> > A reverse inorder looks just fine to me .
> >
> > On Jan 26, 3:14 pm, Ritu Garg <ritugarg.c...@gmail.com> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > @Algoose
> >
> > > I said ..*.For every node x,go to the last node in its left subtree and
> mark
> > > the right child of that node as x.*
> >
> > > it is to be repeated for all nodes except leaf nodes.
> > > to apply this approach ,you need to go down the tree.No parent pointers
> > > required.
> > > for every node say x whose left sub tree is not null ,go to the largest
> node
> > > in left sub-tree say y.
> > > Set  y->right = x
> > > y is the last node to be processed in left sub-tree of x hence x is
> > > successor of y.
> >
> > > On Wed, Jan 26, 2011 at 3:27 PM, Algoose chase <harishp...@gmail.com>
> wrote:
> > > > @ritu
> > > > how would you find a successor without extra space if you dont have a
> > > > parent pointer ?
> > > > for Instance from the right most node of left subtree to the parent
> of left
> > > > subtree(root) ?
> > > > @Juver++
> > > > Internal stack does count as extra space !!
> >
> > > > On Wed, Jan 26, 2011 at 3:02 PM, ritu <ritugarg.c...@gmail.com>
> wrote:
> >
> > > >> No,no extra space is needed.
> > > >> Right children which are NULL pointers are replaced with pointer to
> > > >> successor.
> >
> > > >> On Jan 26, 1:18 pm, nphard nphard <nphard.nph...@gmail.com> wrote:
> > > >> > If you convert the given binary tree into right threaded binary
> tree,
> > > >> won't
> > > >> > you be using extra space while doing so? Either the given tree
> should
> > > >> > already be right-threaded (or with parent pointers at each node)
> or
> > > >> internal
> > > >> > stack should be allowed for recursion but no extra space usage
> apart
> > > >> from
> > > >> > that.
> >
> > > >> > On Wed, Jan 26, 2011 at 3:04 AM, ritu <ritugarg.c...@gmail.com>
> wrote:
> > > >> > > it can be done in O(n) time using right threaded binary tree.
> > > >> > > 1.Convert the tree to right threaded tree.
> > > >> > > right threaded tree means every node points to its successor in
> > > >> > > tree.if right child is not NULL,then it already contains a
> pointer to
> > > >> > > its successor Else it needs to filled up as following
> > > >> > >      a. For every node x,go to the last node in its left subtree
> and
> > > >> > > mark the right child of that node as x.
> > > >> > > It Can be done in O(n) time if tree is a balanced tree.
> >
> > > >> > > 2. Now,Traverse the tree with Inorder Traversal without using
> > > >> > > additional space(as successor of any node is available O(1)
> time) and
> > > >> > > keep track of 5th largest element.
> >
> > > >> > > Regards,
> > > >> > > Ritu
> >
> > > >> > > On Jan 26, 8:38 am, nphard nphard <nphard.nph...@gmail.com>
> wrote:
> > > >> > > > Theoretically, the internal stack used by recursive functions
> must
> > > >> be
> > > >> > > > considered for space complexity.
> >
> > > >> > > > On Mon, Jan 24, 2011 at 5:40 AM, juver++ <
> avpostni...@gmail.com>
> > > >> wrote:
> > > >> > > > > internal stack != extra space
> >
> > > >> > > > > --
> > > >> > > > > 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
> > > >> > > > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> <algogeeks%2Bunsubscribe@googlegroups .com>
> > > >> <algogeeks%2bunsubscr...@googlegroups.com<algogeeks%252bunsubscr...@googlegroups.com>
> <algogeeks%252Bunsubscribe@googleg roups.com>
> >
> > > >> > > <algogeeks%2bunsubscr...@googlegroups.com<algogeeks%252bunsubscr...@googlegroups.com>
> <algogeeks%252Bunsubscribe@googleg roups.com>
> > > >> <algogeeks%252bunsubscr...@googlegroups.com<algogeeks%25252bunsubscr...@googlegroups.com>
> <algogeeks%25252Bunsubscribe@goo glegroups.com>
> >
> > > >> > > > > .
> > > >> > > > > For more options, visit this group at
> > > >> > > > >http://groups.google.com/group/algogeeks?hl=en.
> >
> > > >> > > --
> > > >> > > 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
> > > >> > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> <algogeeks%2Bunsubscribe@googlegroups .com>
> > > >> <algogeeks%2bunsubscr...@googlegroups.com<algogeeks%252bunsubscr...@googlegroups.com>
> <algogeeks%252Bunsubscribe@googleg roups.com>
> >
> > > >> > > .
> > > >> > > For more options, visit this group at
> > > >> > >http://groups.google.com/group/algogeeks?hl=en.
> >
> > > >> --
> > > >> 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
> > > >> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> <algogeeks%2Bunsubscribe@googlegroups .com>
> > > >> .
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/algogeeks?hl=en.
> >
> > > >  --
> > > > 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
> > > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> <algogeeks%2Bunsubscribe@googlegroups .com>
> > > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/algogeeks?hl=en.
>
> --
> 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
> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>

-- 
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 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to