2 solutions
1.
node* arr[100];
int j=0;
inorder(node * ptr)
{
if(ptr)
{
inorder(ptr->left);
arr[j++]=ptr;
inorder(ptr->right);
}
}
u will have all the addresses in inorder fashion.... now its easy to watch
any successor ... :P :P
2. best solution
//considering that there is 1 more field in the structure
typedef struct bin
{
struct bin* left;
int data;
struct bin* right;
struct bin* succ;
}
inorder
{
if(ptr)
{
static int p=0;
inorder(ptr->left)
if(p) ptr->succ=prev; //here we are skipping 1st left most leaf
because it has no successor
p=1;
prev=ptr;
inorder(ptr->right);
}
}
simplest and short code :) :) :)
anyone have better code???
On Sat, Aug 6, 2011 at 6:52 PM, UTKARSH SRIVASTAV
<[email protected]>wrote:
> sorry two cases only
>
>
> On Sat, Aug 6, 2011 at 6:21 AM, UTKARSH SRIVASTAV <[email protected]
> > wrote:
>
>> pseudo code
>>
>> three cases are possible
>> 1.node has left and right child
>> then inorder succesor will be leftmost child of right child
>> 2. node has left child and no right child or no left and right chid
>> if node is left child of it's parent then inorder succesor is it's
>> parent only
>> if node is right child of it's parent then keep on moving upwards
>> until you find a parent which is left child of it's parent
>> then it will be the inorder succesor....if you reach node then no inorder
>> succesor
>>
>> --
>> *UTKARSH SRIVASTAV
>> CSE-3
>> B-Tech 3rd Year
>> @MNNIT ALLAHABAD*
>>
>>
>
>
> --
> *UTKARSH SRIVASTAV
> CSE-3
> B-Tech 3rd Year
> @MNNIT ALLAHABAD*
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
--
**Regards
SAGAR PAREEK
COMPUTER SCIENCE AND ENGINEERING
NIT ALLAHABAD
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.