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, ¤t); // Move a node to 'a' >> if (current != NULL) { >> MoveNode(&b, ¤t); // 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.
