http://cslibrary.stanford.edu/105/LinkedListProblems.pdf

-Moheed



On Sun, Dec 25, 2011 at 11:39 PM, atul anand <[email protected]>wrote:

> @ashish : please provide link for that page
>
> On Sun, Dec 25, 2011 at 10:36 PM, Ashish Goel <[email protected]> wrote:
>
>> refer stanford page
>> 1,2,3,4,5,6
>>
>> will become
>>
>> 5,3,1
>> 6,4,2
>>
>> void MoveNode(struct node** destRef, struct node** sourceRef) {
>> struct node* newNode = *sourceRef; // the front source node
>> assert(newNode != NULL);
>> *sourceRef = newNode->next; // Advance the source pointer
>> newNode->next = *destRef; // Link the old dest off the new node
>> *destRef = newNode; // Move dest to point to the new node
>> }
>>
>> void AlternatingSplit(struct node* source,
>> struct node** aRef, struct node** bRef) {
>> struct node* a = NULL; // Split the nodes to these 'a' and 'b' lists
>> struct node* b = NULL;
>> struct node* current = source;
>> while (current != NULL) {
>> MoveNode(&a, &current); // Move a node to 'a'
>> if (current != NULL) {
>> MoveNode(&b, &current); // Move a node to 'b'
>> }
>> }
>> *aRef = a;
>> *bRef = b;
>> }
>>
>>
>> Best Regards
>> Ashish Goel
>> "Think positive and find fuel in failure"
>> +919985813081
>> +919966006652
>>
>>
>>
>> On Sat, Dec 24, 2011 at 11:37 PM, atul anand <[email protected]>wrote:
>>
>>> because you are doing odd=odd->next; and even=even->next;
>>> you will lose head pointers for the two linked list formed once you come
>>> out of the loop.
>>>
>>>
>>>
>>> void segregate(node* head)
>>> {
>>>     node *temp,*odd,*even;
>>>     toggle=1;
>>>     if(head==NULL)
>>>     {
>>>          return;
>>>     }
>>>     odd=head;
>>>
>>>     if(head->next==NULL)
>>>     {
>>>
>>>          return;
>>>     }
>>>     even=head->next;
>>>
>>>     if(even->next==NULL)
>>>     {
>>>           return;
>>>     }
>>>     else
>>>     {
>>>               temp=even->next;
>>>     }
>>>     node *otemp,*etemp;
>>>     otemp=odd;
>>>     etemp=even;
>>>
>>>     while(temp!=NULL)
>>>     {
>>>
>>>             if( toggle == 1)
>>>             {
>>>
>>>                           otemp->next=temp;
>>>                           otemp=otemp->next;
>>>
>>>                           temp=temp->next;
>>>                           otemp->next=NULL;
>>>
>>>                           toggle=0;
>>>             }
>>>             else
>>>             {
>>>                           etemp->next=temp;
>>>                           etemp=etemp->next;
>>>
>>>                           temp=temp->next;
>>>                           etemp->next=NULL;
>>>
>>>                           toggle=1;
>>>
>>>             }
>>>
>>>
>>>
>>>     }
>>>
>>>
>>> }
>>>
>>> On Sat, Dec 24, 2011 at 10:56 PM, Karthikeyan V.B 
>>> <[email protected]>wrote:
>>>
>>>> Segregate even and odd psoitioned nodes in a linked list
>>>>
>>>> Eg:
>>>> 2->3->1->9->7->5
>>>> The output should be two separate lists
>>>> 2->1->7
>>>> 3->9->5
>>>>
>>>> *My code is:*
>>>> void segregate(node* head)
>>>> {
>>>> int i=1;
>>>> node* sec=head->next;
>>>> node *odd=head,*even=head->next;
>>>> while(even)
>>>> {
>>>> if(i%2)
>>>> {
>>>> odd->next=even->next;
>>>> even->next=NULL;
>>>> odd=odd->next;
>>>> if(!odd->next) break;
>>>> }
>>>> else
>>>> {
>>>> even->next=odd->next;
>>>> odd->next=NULL;
>>>> even=even->next;
>>>> if(!even->next) break;
>>>> }
>>>> i++;
>>>> }
>>>> }
>>>>
>>>> Pls correct me if i'm wrong or suggest me a better approach
>>>>
>>>> Regards,
>>>> KARTHIKEYAN.V.B
>>>> PSGTECH
>>>> CBE
>>>>
>>>> --
>>>> 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.
>>>>
>>>
>>>  --
>>> 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.
>>>
>>
>>  --
>> 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.
>>
>
>  --
> 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.
>

-- 
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.

Reply via email to