izidor
Nombre de messages : 1 Date d'inscription : 24/07/2007
| Sujet: Exemple de liste chainee simple en c++ Mar 24 Juil à 14:24 | |
| Salut a tous, voici un petit exemple sur les liste chainees : - Code:
-
#include <cstdlib> #include <iostream>
// |----------------------------------| // |****** Liste chainee simple*******| // |Auteur: IZIDOR | // |----------------------------------| //la liste chainee est tres utile quand on c'est pas combien d'objet ont a besion a l'avance.
//Expemle: Disont que l'ont veut stokees des numeros de telephone ont peut declarer le tableau suivant: // char tel[10] soit 10 numeros de telephone : si il nous en faut 11 on n'a pas assez alloues de place en memoire //ou au contraire // char tel[1000] soit 1000 numeros de telephone : si il nous en faut 800 on a alloues trop de place en memoire //Avec les listes chainees ont insere les objet 1 a 1 dans la liste selon les besions //comme ça on alloue juste la place qu'il nous faut en memoire. //-----------------------------------EXEMPLE DE CODE--------------------------------------------------- using namespace std; //****************CLASS C_CELLULE*********************** class c_cellule { public: //donnees char*telephone;//numero de telephone c_cellule*cel_suivante;//pointeur qui pointe sur la cellule suivante; //methode c_cellule(char*tel);//constructeur }; //definition du constructeur c_cellule::c_cellule(char*tel) { telephone=tel; cel_suivante=NULL; } //*****************FIN************************************* //********************************************************* //****************CLASS C_LISTE_SIMPLE********************* class c_liste_simple { public: //donnees c_cellule*debut_liste;//la premiere cellule de la liste c_cellule*courant_liste;//la derniere cellule ajouter dans la liste //methodes c_liste_simple();//constructeur void ajouter_cellule(c_cellule*c);//ajouter une cellule dans la liste void afficher_liste();//afficher la liste }; //definition du constructeur c_liste_simple::c_liste_simple() { debut_liste=NULL; courant_liste=NULL; } //definition de ajouter_cellule void c_liste_simple::ajouter_cellule(c_cellule*c) { if(debut_liste==NULL)//si la liste est vide { debut_liste=c;//c devient la premiere cellule de la liste courant_liste=c;// et aussi la derniere ajouter } else//sinon { courant_liste->cel_suivante=c;//c devient la cellule suivante de la derniere cellule ajouter courant_liste=courant_liste->cel_suivante;//et c devient la derniere cellule ajouter } } //definition de afficher_liste void c_liste_simple::afficher_liste() { int x=1; c_cellule*temporaire=debut_liste;//cellule temporaire pour lire dans la liste while(temporaire)//temp qu'on est pas a la fin de la liste { cout<<"Numero "<<x<<" de tel: "<<temporaire->telephone<<"\n";//affiche le numero de telephone de la cellule x temporaire=temporaire->cel_suivante;//on avance dans la liste x++; }//on est a la fin de la liste delete temporaire;//on detruit la cellule temporaire } //**************************FIN******************************* //************************************************************ //**************MAIN****************************************** int main(int argc, char *argv[]) { c_liste_simple*LS=new c_liste_simple();//construction d'une liste simple c_cellule*C=NULL;//declaration d'une cellule vide C=new c_cellule("06-14-22-10-XX");//construction d'une cellule LS->ajouter_cellule(C);//ajouter la cellule dans la liste C=new c_cellule("06-15-22-10-XX"); LS->ajouter_cellule(C);
C=new c_cellule("06-59-22-47-XX"); LS->ajouter_cellule(C); LS->afficher_liste();//affiche la liste
system("PAUSE"); return EXIT_SUCCESS; } //********************FIN******************************************
a+ | |
|