void largeur (struct b node ∗n )
{
en qu eu e ( n ) ;
wh ile ( ( n = t ake ( ) ) != NULL) {
do something (n−>data ) ;
i f ( n−>l e f t != NULL)
en qu eu e ( n−>l e f t ) ;
i f ( n−>r i g h t != NULL)
en qu eu e ( n−>r i g h t ) ;
}
}
1.4 Arbre binaire de recherche
Un arbre binaire de recherche est tel que chaque nœuds contient une clef.
La clef d’un nœud est >`a celle de son fils gauche (donc `a celles de tous les nœuds du sous-arbre
gauche).
La clef d’un nœud est <`a celle de son fils droit (donc `a celles de tous les nœuds du sous-arbre
droit).
> 42
21
7
1
8
6410
22 38
42
> 21< 21
> 21 et < 42
35
La recherche s’effectue par comparaison de la clef recherch´ee avec celle du nœud courant lors
d’un parcours en profondeur d’abord.
Absent
35 ?
21
Présent
1
8
35 6410
22 38
42
35 > 21
35 < 42
23 ?
21
35 64
22 38
42
23 > 21
23 < 42
23 < 35
23 > 22
7
1
8
7
10
b o ol s e a r c h ( int v , struct b node ∗n )
{
i f ( n == NULL) return ( f a l s e ) ;
i f ( v == n−>data ) return ( t r u e ) ;
i f ( v <n−>data )
return ( s e a r c h ( v , n−>l e f t ) ) ;
else
return ( s e a r c h ( v , n−>r i g h t ) ) ;
}
La complexit´e des op´erations de recherche, insertion, suppression dans un arbre binaire de
recherche est g´en´eralement meilleure que dans les structures de tables .
3