Professional Documents
Culture Documents
20 6 1 1 7
noeud lien
Ajouter un élément : 20 6 1 1 7
Supprimer un élément : 20 6 1 7
20 6 1 1 7
indice : 2
20 6 1 1 7
20 6 1 1 7
20 6 1 1 7
20 6
Un pointeur est une variable qui contient l’adresse (l’endroit où est rangé en mémoire)
d’une autre variable :
20 suivant = 100 6
100 : adresse
$OJRULWKPH
'pEXW
20 100 6
100
#ifned __NŒUD_H
#define __NŒUD_H
typedef struct n{
int info ; N’importe quel type de variables
struct n* suivant ;
} NŒUD ;
#endif /* __NŒUD_H */
Benoît Charroux - Listes chaînées - Septembre 98 - 6
Comment représenter les liens et les nœuds ?
... 20
z
• Utiliser un pointeur nul :
... 20 null
20
début z
ptrNoeud null
NŒUD* initialiser(){
return NULL ;
}
void main(){
NŒUD* ptrNoeud ;
ptrNoeud = initialiser() ;
}
NŒUD* initialiser(){
NŒUD* ptrNoeud ;
ptrNoeud = (NŒUD*)malloc( sizeof( NŒUD ) ) ;
if( ptrNoeud != NULL ){
ptrNoeud->suivant = NULL ;
}
return ptrNoeud ;
} début null
void main(){
NŒUD* debut ;
debut = initialiser() ;
}
NŒUD* initialiser(){
NŒUD* z, *debut ;
z = (NŒUD*)malloc( sizeof( NŒUD ) ) ;
if( z != NULL ){
z->suivant = z ;
debut = (NŒUD*)malloc( sizeof( NŒUD ) ) ;
if( debut != NULL ){
debut->suivant = z ;
}
}
return debut ; début z
}
void main(){
NŒUD* debut ;
debut = initialiser() ;
}
Benoît Charroux - Listes chaînées - Septembre 98 - 11
void main(){
NŒUD* debut ; debut null
debut = initialiser() ;
debut = insererEnTete( debut, 20 ) ; debut 20 null
}
Benoît Charroux - Listes chaînées - Septembre 98 - 13
UHWXUQ
} else {
UHWXUQ
}
} Benoît Charroux - Listes chaînées - Septembre 98 - 14
Insérer dans une liste chaînée avec un nœud factice au début
int insererEnTete( NŒUD* debut, int i ){
NŒUD* nouveau ;
nouveau = (NŒUD*)malloc( sizeof( NŒUD ) ) ;
if( nouveau != NULL ){
nouveau->suivant = debut->suivant ;
nouveau->info = i ;
debut->suivant = nouveau ;
return 1 ;
} else {
return 0 ; null
} début
} 20 null
void main(){ début
NŒUD* debut ;
int res ;
debut = initialiser() ;
res = insererEnTete( debut, 20 ) ;
}
Benoît Charroux - Listes chaînées - Septembre 98 - 15
Insérer dans une liste chaînée avec un nœud factice au début et à la fin
Rechercher un élément
1 NULL
début
20
début z
Supprimer dans
une liste chaînée
Supprimer dans une liste chaînée
30
1 20
début z
Pointer ici pour changer suivant.
1 30 20
début z
30
NULL
début
Pointer ici pour changer suivant.
30
début z
30
début z
Pointer ici pour changer suivant.
30
début z