Liste chaine qui affiche pas le resultat
mathieu
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je travail avec codeblock
je suis capable d'entre les données mais las section affichetout ne fonctionne pas pourquoi
merci a l'avance de la reponse
je travail avec codeblock
je suis capable d'entre les données mais las section affichetout ne fonctionne pas pourquoi
merci a l'avance de la reponse
#include <iostream> using namespace std; enum {kpluspetit, kplusgrand, kidentique}; class donnees { public: donnees( int val):mavaleur(val){} ~donnees(){} int compare (const donnees &); void affiche() { cout<<mavaleur<<endl; } private: int mavaleur; }; int donnees::compare (const donnees & autresdonnees) { if(mavaleur<autresdonnees.mavaleur) return kpluspetit; if (mavaleur >autresdonnees.mavaleur) return kplusgrand; else return kidentique; } class noeud; class noeudtete; class noeudqueue; class noeudinterne; class noeud { public: noeud(){} virtual~noeud(){} virtual noeud * insere (donnees* lesdonnees)=0; virtual void affiche()=0; private: }; class noeudinterne: public noeud { public: noeudinterne (donnees* lesdonnees, noeud * suivant); ~noeudinterne (){ delete lesuivant; delete mesdonnees;} virtual noeud* insere (donnees* lesdonnees); virtual void affiche(){mesdonnees->affiche(); lesuivant->affiche();} private: donnees * mesdonnees; noeud * lesuivant; }; noeudinterne::noeudinterne(donnees * lesdonnees, noeud *suivant): mesdonnees (lesdonnees), lesuivant (suivant) { } noeud * noeudinterne:: insere (donnees* lesdonnees) { int resultat=mesdonnees->compare(*lesdonnees); switch (resultat) { case kidentique: case kplusgrand: { noeudinterne* donneesnoeud= new noeudinterne(lesdonnees,this); return donneesnoeud; } case kpluspetit: lesuivant= lesuivant ->insere(lesdonnees); return this;} return this; } class noeudqueue:public noeud { public: noeudqueue(){} ~noeudqueue (){} virtual noeud*insere(donnees * lesdonnees); virtual void affiche(){} private: }; noeud * noeudqueue:: insere (donnees* lesdonnees) { noeudinterne * donneesnoeud= new noeudinterne (lesdonnees,this); return donneesnoeud; } class noeudtete:public noeud { public: noeudtete(); ~noeudtete(){delete lesuivant;} virtual noeud * insere(donnees * lesdonnees); virtual void affiche(){lesuivant->affiche();} private: noeud * lesuivant; }; noeudtete::noeudtete() { lesuivant = new noeudqueue; } noeud * noeudtete:: insere (donnees*lesdonnees) { lesuivant =lesuivant->insere(lesdonnees); return this; } class listechainee { public: listechainee (); ~listechainee(){delete matete;} void insere (donnees * lesdonnees); void affichetout(){matete->affiche();} private: noeudtete*matete; }; listechainee::listechainee() { matete= new noeudtete; } void listechainee:: insere (donnees *pdonnees) { matete->insere(pdonnees); } int main() { donnees *pdonnees; int val; listechainee l1; int n; for (n=0;n<20;n++) { cout<<"inserer une valeur (0 pour arreter): "; cin>>val; if(val==0) break; pdonnees=new donnees(val); l1.insere(pdonnees); } l1.affichetout(); return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Liste chaine qui affiche pas le resultat
- Liste déroulante excel - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Chaine tnt gratuite sur mobile - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Liste déroulante en cascade - Guide
1 réponse
Bonjour,
J'ai regardé rapidement. Je n'ai pas vu de problème particulier à part que gérer les extrémités comme des cas particuliers ça fait mal à la tête surtout que tes indentations ajoutent aussi à la confusion.
Bravo pour avoir réussi à écrire ça, pourquoi faire simple quand on peut faire compliqué.
Ta question aussi n'aide pas "affichetout ne fonctionne pas". Elle fait quoi? Dans quel cas?
J'ai regardé rapidement. Je n'ai pas vu de problème particulier à part que gérer les extrémités comme des cas particuliers ça fait mal à la tête surtout que tes indentations ajoutent aussi à la confusion.
Bravo pour avoir réussi à écrire ça, pourquoi faire simple quand on peut faire compliqué.
Ta question aussi n'aide pas "affichetout ne fonctionne pas". Elle fait quoi? Dans quel cas?