Académique Documents
Professionnel Documents
Culture Documents
20
...
...
n-1 n
Indices :
lien
noeud
Ajouter un lment :
20
4
Supprimer un lment :
20
20
indice :
20
20
20
20
Un pointeur est une variable qui contient ladresse (lendroit o est rang en mmoire)
dune autre variable :
20
suivant = 100
6
100 : adresse
$OJRULWKPH
'pEXW
9DULDEOH
)LQ
100
6
100
/* __NUD_H */
Benot Charroux - Listes chanes - Septembre 98 - 6
20
z
20
null
ptrNoeud
null
NUD* initialiser(){
return NULL ;
}
void main(){
NUD* ptrNoeud ;
ptrNoeud = initialiser() ;
}
}
void main(){
NUD* debut ;
debut = initialiser() ;
}
null
debut
null
debut
20
null
}
Benot Charroux - Listes chanes - Septembre 98 - 13
void main(){
NUD* debut ;
int res ;
debut = initialiser() ;
res = insererEnTete( GHEXW, 20 ) ;
}
LQW
debut
null
debut
20
} else {
UHWXUQ
}
}
null
null
Insrer dans une liste chane avec un nud factice au dbut et la fin
La fonction prcdente est utilise puisquelle ne dpend que du premier nud :
Rechercher dans
une liste chane
Rechercher un lment
NULL
dbut
}
return debut ;
}
20
z
dbut
}
return debut ;
}
Ce nest plus ncessaire de tester le fin de la liste.
Supprimer dans
une liste chane
20
dbut
z
Pointer ici pour changer suivant.
30
20
dbut
return debut ;
}
while(debut->suivant!=NULL && debut ->suivant->info != i ){
debut = debut ->suivant ;
}
}
return debut ;
}
Benot Charroux - Listes chanes - Septembre 98 - 22
30
z
dbut
Nud* recherchePrecedent( Nud* debut, int i ){
while( debut->suivant->info != i ){
debut = debut->suivant ;
}
return debut ;
}
30
z
dbut
Pointer ici pour changer suivant.
void supprimerSuivant( NUD* n ){
Nud* tmp ;
tmp = n->suivant ;
n->suivant = n->suivant->suivant ;
free( tmp ) ;
}
/* mmorise le suivant */
/* pour le changer ici */
/* et le dtruire l */
30
z
dbut