Re: [Dev-C++] Sorting Linked Lists and Array Members
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
From: Michal M. <mol...@se...> - 2011-05-02 18:22:51
|
Simple (bubble)sort can look like this: void swap(Node_ptr &list, Node_ptr n, Node_ptr next, Node_ptr prev) { n->ptr_to_next_node = next->ptr_to_next_node; next->ptr_to_next_node = n; if (prev) { prev->ptr_to_next_node = next; } else { /* we're at first node */ list = next; } } void sort(Node_ptr &list) { bool swapped; do { swapped = false; for (Node_ptr n = list, prev = NULL; n && n->ptr_to_next_node; prev = n, n = n->ptr_to_next_node) { Node_ptr next = n->ptr_to_next_node; if (strcmp(n->word, next->word) > 0) { swap(list, n, next, prev); swapped = true; } } } while (swapped); } |