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);
}
|