Hello,
I am trying to sort a singly linked list for the following typedef
typedef struct message {
int messageId;
char * messageText;
struct message * next;
} message;
I have successfully implemented add, delete, print, and search functions for the linked list but I am not sure why I am stuck with this one.
I posted my code below. I get a BUS error in the second iteration of the while loop. I am quite new to linked list so I will appreciate any explanation.
Thank you
Code:if(first != NULL && first->next != NULL) /* less than two nodes */ { message *a = first; message *b = first->next; message *beforeA = NULL; while(b != NULL) { if(a->messageId > b->messageId) { a->next = b->next; b->next = a; if(a == first && beforeA == NULL) { first = b; beforeA = first; } else if (beforeA != NULL) { beforeA->next = b; } /* Move to the next couple of nodes */ b = a->next; beforeA = beforeA->next; }else if (a->messageId < b->messageId) { a = a->next; b = b->next; } } }



LinkBack URL
About LinkBacks


