TD d’algorithmique
Arbres
1 / Exemples
Arbre généalogique
source : http://derniersvalois.canalblog.com/archives/2007/04/30/5615361.html
Arbre binaire de recherche : Alphabet Morse
source : http://pauillac.inria.fr/~maranget/X/TC/X.97/TD-6/enonce.html
Arbre lexicographique
C
E
I
L
I
L
C
I
L
C
E
L
C
E
I
L
E
L
I
E
C
E
C
I
C
E
L
E
I
L
C
E
C
Arbre de jeu
source : http://www.tony-lambert.fr/these/these.html
Arbre binaire de codage : Compactage de Huffmann
source : http://replicateur.free.fr/site%20tpe%202004/pages/huffman.html
Arbre d'expression algébrique
2 / Définitions
Arbre : structure ordonnée de "noeuds" où chaque noeud a 0, 1 ou plusieurs successeur et chaque noeud a un et un seul
prédécesseur, sauf un seul noeud qui n'en a aucun
Tout noeud peut être considéré comme un arbre dont il est la racine
Exemple dans l'arbre précédent si on identifie :
le noeud G à l'arbre
G
M
N
O
S
le noeud E à l'arbre
E
K
L
R
et le noeud D à l'arbre
D
H
I
J
P
Q
T
U
alors l'arbre peut s'écrire plus simplement
A
B
C
D
E
F
G
fils de D
descendants de C
ancêtres de R
racine
feuilles
père de H
profondeur 1
profondeur 2
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
T
U
R
S
Arbre binaire : Chaque noeud a au plus deux fils
Remarque : Si la hauteur est n, l'arbre a au plus
1
1 2 4 ... 2 2 1
nn
noeuds
Chaque noeud est caractérisé par une une valeur (appelée clé, ou étiquette) et ses fils éventuels (c'est à dire le sous-arbre
de gauche et le sous-arbre de droite..
Exemple dans l'arbre binaire précédent,
le noeud
112
est caractérisé par
112 , 1121 , 1122
,
le noeud
121
est caractérisé par
121 , 1211 ,
et le noeud
1222
par
1222 , ,
Un arbre binaire est donc :
soit l'arbre vide
soit la donnée d'une clé et de 2 arbres binaires
3 / Implémentation en Python d'un arbre binaire
Dans la plupart des langages, l'implémentation des arbres se fait à l'aide de 'pointeurs' , c'est-à-dire de variables qui
contiennent l'adresse mémoire d'autres variables.
En langage Python, on utilisera une implémentation utilisant des listes :
Définition récursive :
Un arbre binaire est
soit la liste vide
soit une liste composée d'une clé et de 2 arbres binaires
exemples
arbre0=[]
arbre1=[1,[],[]]
arbre2=[2,arbre0,arbre0]
arbre3=[3,arbre2,arbre1]
arbre4=[4,arbre3,arbre1]
>>> [ 4 , [ 3 , [ 2 , [ ] , [ ] ] , [ 1 , [ ] , [ ] ] ] , [ 1 , [ ] , [ ] ] ]
fils gauche de 12
fils droit de 12
121 n'a qu'un
fils gauche
1222 n'a
pas de fils
1
11
12
111
112
121
122
1112
1121
1122
1221
1222
11211
11212
11221
11222
12211
12212
1111
1211
arbre vide
arbre vide
arbre vide
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !