J'essaie de trier la liste chaînée circulaire unique après chaque modification. Mais mon code ne fonctionne pas. Je me suis basé sur l'algorithme de tri de sélection. Je fais cela depuis des heures mais je n'arrive pas à obtenir le bon code.Trier une liste chaînée circulaire unique
void editList(node *head, int value, int newValue)
{
node *traverser = head;
do {
traverser = traverser -> next;
}while(traverser -> data != value);
traverser -> data = newValue;
node *index;
node *selection;
node *temp = new node;
for(index = head; index -> next != head; index = index -> next) {
for(selection = head; selection -> next != head; selection = selection -> next) {
if(index -> data > selection -> data) {
temp -> data = index-> data;
index -> data = selection -> data;
selection -> data = temp -> data;
}
}//End of outer loop
}//End of sorting
return;
}//End of editList()
En supposant que la liste commence triée, car un seul nœud est editted à au moment, pourquoi ne pas supprimer le nœud de la liste, puis re-insérer de nouveau dans la liste dans son bon emplacement? – rcgldr