Je sais que le tri des bulles n'est probablement pas le moyen le plus rapide de le faire, mais c'est acceptable. J'ai juste du mal à ajuster l'algorithme pour doubler les listes de tableaux.C++ Bubble trier une liste doublement chaînée
Mes listes doubles liées ont un type int et une chaîne de type pour contenir un nombre et un mot. Ma liste a été triée avec un tri d'insertion que j'ai écrit pour trier par ordre alphabétique, maintenant je dois réordonner numériquement ma liste double liée, le plus grand au moins. Mon problème est de savoir comment exécuter cette boucle afin qu'elle soit correctement triée et non pas une seule fois.
Voici ce que j'ai réussi à descendre jusqu'à présent:
void DblLinkedList::ReorderListNumeric()
{
dummy = new Node();
temphead = head;
temp = head->next;
while(tempTwo->next != NULL)
{
if(temp->wordCount < tempTwo->wordCount)
{
dummy->word = tempTwo->word;
dummy->wordCount = tempTwo->wordCount;
tempTwo->word = temp->word;
tempTwo->wordCount = temp->wordCount;
temp->word = dummy->word;
temp->wordCount = dummy->wordCount;
}
temp = tempTwo;
tempTwo = tempTwo->next;
}
}
Procédez à un échange de fonction (i, j) afin de pouvoir effectuer un test unitaire. – vrdhn
Juste pour couvrir toutes nos bases: Je suppose que vous connaissez déjà les implémentations existantes de listes chaînées et la fonction de tri intégrée dans la STL C++, et que votre travail actuel est pour un passe-temps ou une tâche scolaire. – Reinderien
dans certaines conditions, le tri à bulles est souvent optimal. Ne le négligez pas simplement à cause de ses performances asymptotiques. – SingleNegationElimination