chapitre 10

Les listes chainées

 

1-    Introduction :

 

C’est une structure mais l’un de ses champ comporte un pointeur qui pointera vers une structure de méme type.

D’où le mot chainée (chaine : relié).

 

·        Structure : (étudier dans le chapitre précédent)

 

Mahfoudhi

Ghaieth

15

12

11

13

14.25

 

Autri

Johnson

11

12

14

17

15.44

 

(ne sont pas relié)

 

Liste chainée :

 

 

Mahfoudhi

Ghaieth

15

12

11

13

14.25

100(adresse)

Autri

Johnson

11

12

14

17

15.44

 


                                                            100

 

2-    Caractérisation d’une liste chainées :

 

1* principe :

 

Stoker les donnée qui vont être traité d’une manière séquentiel.

Les éléments de liste sont appelés nœuds ou maillons, il ne sont pas ronger les un au côté des autres.

 

on dispose de pointeur de téte qui contient l’adresse du premier élément de la liste(je l’appelle on générale d ou debut).

 

Le dernier nœud ne pointe sur rien, il faut donc effectuer  à son pointeur la valeur NULL.

 

2* inconvinion :

 

If faut parcourir toute la liste pour accéder à un élément (séquentiel).

 

3* avantage :

 

Pour déplacer un élément on lui supprimant ou ajoutant, il suffit de modifier ses liens.

 

3-    Création d’une liste chainée :

 

1* déclaration :

 

Définir la structure de donnée ainsi un pointeur vers une structure de méme type(il pointera vers la téte de cette liste).

 

Exemple :

 

struct nœud

{

int x ;

struct nœud* svt ;/*pointeur suivant*/

} ;

 

2* création d’une liste vide :

 

Struct nœud* L ;/*L est la téte de notre liste*/

L=NULL ;

 

L=NULL

 

 

3* affectation :

 

Comme les structure on utilise (.) dans la liste chainée en utilisera ->

(&. (<->)  ->).

 

Pour plus des détaille envoyer vos question et de mande du cour complet).

 

 

4* création d’une liste contenant un seul élément :

 

Les différente étapes sont :

 

·        Définition de la structure. (déjà vue) (1)

·        Définition des pointeurs. (2)

·        Allouée la mémoire nécessaire pour les nouveaux nœuds. (3)

·        Affecté des valeurs au champ des nouveaux nœuds. (4)

·        Définir les nouveaux nœuds comme du tète de la liste

L=now (pointeur responsable à la création des nouveaux nœuds). (5)

 

Exemple :

(1)

struct nœud    

{

int x ;

struct nœud* svt ;

} ;

 (2)                                                                               L=NULL

 

struct nœud* L=NULL ;                                  

struct nœud* now ; /*pointeur nouveux*/

 

(3)

 

now=(struct nœud*)malloc(sizeof(struct nœud)) ;        

 

                                                                                           now

(4)

 

 

now->x=2 ;                                                             

2

NULL

                                                                                           now

now->svt=NULL ;

 

(5)

 

L=now ;                                                                                  

2

NULL

                                                                                   L->now now

 

 

D’où

 

2

NULL

                                                                                              L

 

 

 

 

è Il faut voir les exercices pour mieux comprendre la cour (pratique).

 

Pour me contacté : mahfoudhighaieth2007@yahoo.fr

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site

×