Tri d'une liste chaînée
Fermé
levaeric
Messages postés
3
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
14 mars 2013
-
14 mars 2013 à 01:26
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 14 mars 2013 à 16:04
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 14 mars 2013 à 16:04
A voir également:
- Tri d'une liste chaînée
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Tri excel - Guide
- Liste site streaming illégal - Accueil - Services en ligne
- Annuaire inversé gratuit liste rouge - Forum Mobile
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
14 mars 2013 à 14:06
14 mars 2013 à 14:06
Salut levaeric,
Comme avec ton code on ne sait pas ce que c'est que Produit, ListeProduit, et ton message est classé dans C, alors que tu utilises "new" et que tu sembles appeler dans ta boucle des méthodes dans des objets, je crois que globalement, on est un peu perplexes :-)
Dal
Comme avec ton code on ne sait pas ce que c'est que Produit, ListeProduit, et ton message est classé dans C, alors que tu utilises "new" et que tu sembles appeler dans ta boucle des méthodes dans des objets, je crois que globalement, on est un peu perplexes :-)
Dal
14 mars 2013 à 14:36
Produit est une structure comportant les enregistrement suivants:
struct Produit
{
int noProduit;
std::string description;
double prixUnitaire;
int quantite;
Produit* produitSuiv;
}
ListeProduit est le controleur de mes noeuds qui conserve l'adresse dul debut et la fin de mes noeuds ainsi que le nombre de noeus dans taille
struct ListeProduit
{
Produit* tete;
Produit* queue;
int taille;
}
Donc en résumé je dois trié le noeud produit par ordre alphabétique du champ description(celui-ci ne comporte aucun accent)
Est-ce plus clair comme cela ?
D'Avance merci !
14 mars 2013 à 16:04
- ce n'est pas du C
- cela ne compile pas en C
- tes structures ne sont pas des types, sans les aliaser avec typedef
- char description[255]; (par exemple) je connais, mais pas std::string description;
- new n'existe pas en C, il faut faire malloc, mais dans ton cas, si tu utilises des pointeurs sur des structures, tu n'as pas besoin d'allouer l'espace correspondant, mais seulement disposer d'un pointeur, donc Produit* MesPoduitsTemp; suffit
- en faisant ListeProduit MaListeProduits; tu déclares une variable, mais tu ne l'initialises pas
- donc MaListeProduits.taille contient une valeur imprédictible, utiliser cette valeur pour une boucle for, c'est un moyen d'explorer une autre dimension :-)
- MesPoduitsTemp = tabProduit puisque ce sont des pointeurs, tu fais pointer MesPoduitsTemp vers exactement la même chose que tabProduit
- donc dans strcmp(MesPoduitsTemp->description, tabProduit->description) tu compares exactement la même chose
- le contenu du if n'est jamais exécuté, puisque le résultat vaut toujours 0 comme tu compares toujours des données identiques
- de toutes façons le contenu du if ne fait rien, puisque MesPoduitsTemp = tabProduit; tabProduit = tabProduit->produitSuiv; tabProduit = MesPoduitsTemp; ne fait que remettre tabProduit dans le même état
Dal