Sunteți pe pagina 1din 2

S.

Laporte

LLMB93

Cration d'une liste chane simple (pile)


Rappel Une liste chane est une collection linaire dlments dinformation. A chaque lment est associ un pointeur qui contient ladresse de llment suivant dans la liste. Chaque lment est de type enregistrement compos dau moins deux champs : un ou plusieurs champs contiennent linformation le dernier champ contient le pointeur sur llment suivant Le pointeur est du type enregistrement de llment Information pointeur

Exemple : Nous allons raliser une liste chane permettant de mmoriser un rpertoire tlphonique simplifi. Chaque personne est caractrise par un nom et un numro de tlphone. Nous dclarons le type des lments de la liste chane Type tElment : Enregistrement Nom : chaine Tel : chane pSuivant : pointeur sur Elment Finenreg Les lments dune liste chane sont crs dans le tas. Ainsi, le nombre dlment de la liste nest pas dtermin la compilation comme avec les tableaux. Les lments sont cres au fur et mesure des besoins et ainsi il ny a pas de perte despace mmoire. Les lments dune liste chane ne sont donc pas nomms. Ils sont accessibles par le pointeur contenu dans llment qui les prcde. Le premier lment, appel tte, na pas de prcdant. Pour mmoriser son adresse, on dclare un pointeur part. Grce ce pointeur, on peut accder au premier lment, qui permet daccder au deuxime, qui permet daccder au troisime, etc Ainsi, partir du pointeur sur le premier lment, on peut parcourir toute la liste. Le dernier lment ne pointe sur rien. Son pointeur est nul. pointeur sur la tte NUL

S. Laporte

LLMB93

La cration dune liste chane simple (de type pile) Pour des raisons de simplicit, la cration dune liste chane se fait lenvers c'est--dire du premier au dernier lment. On cre en dernier llment de tte. Etape de cration dune liste 1. Dclarer un pointeur sur la tte de la liste et un pointeur courant (pointant les autres lments en cours de cration) 2. Crer un premier lment et affecter son adresse pel 3. Initialiser les infos du premier lment 4. Initialiser son pointeur sur suivant NIL (ou NULL en C++) car cet lment sera le dernier et donc naura pas de suivant 5. Affecter cet lment au pointeur ptete (le dernier lment cr est toujours la tte et ainsi on peut rutiliser le pointeur courant pour crer un nouvel lment) 6. Crer un deuxime lment et affecter son adresse au pointeur courant 7. Initialiser les infos de cet lment 8. Llment en cours devient la tte. En effet, le dernier lment cre est toujours la tte. 9. Recommencer l'tape 6 pour les autres lments

Var ptte : pointeur sur tElment //Etape 1 pel: pointeur sur tElment Dbut /*cration du premier lment (l'lment qui sera en queue)*/ pel nouveau tElment // Etape 2 pel ->Nom Jalila // Etape 3 pel ->Tel 0146598632 pel->pSuivant NIL //Etape 4 pel ptete //Etape 5 /*cration du deuxime lment*/ pel nouveau tElment pel ->Nom Pierrot pel ->Tel 0635987541 pel->pSuivant ptte /*Cration d'un autre lment*/ pel nouveau tElement pel->Nom pel->pSuivant ptte

//Etape 6 //Etape 7 //Etape 8

S-ar putea să vă placă și