|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Sep 2005
Messaggi: 148
|
C - Ordinamento di Lista già creata
Salve a tutti,
vorrei sapere se è possibile ordinare sotto una certa chiave i nodi di una lista (dopo averla creata in modo disordinato) solamente facendo uno scambio dei puntatori ai nodi oppure se devo scambiare tutti i campi di ogni nodo. se è possibile il primo modo potete fare qualke esempio secondo una chiave intera per rendere l'idea?. Grazie. |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Sep 2005
Messaggi: 148
|
Help
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Scritta ora al volo, dovrebbe funzionare.
Codice:
struct node { int key; struct node *next; } typedef struct node *node; typedef node *list; /* PRE: first != NULL, second != NULL. */ void node_swap(node **first, node **second) { node *temp = (*first); (*first) = (*second); (*second) = temp; } void list_sort(list *l) { if (l == NULL || (*l)->next == NULL) { return; } if ((*l)->key > (*l)->next->key) { node_swap(l, &((*l)->next)); } list_sort(&((*l)->next)); }
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:03.