Vous savez, ces arbres binaires équilibrés. Je me pose une question sur l'équilibrage.
Prenons un cas pratique:
nous avons l'arbre suivant:
8
/ \
3 9
/ \ \
2 5 10
/ / \
1 4 6
|
On veut y ajouter l'element 7, ce qui déséquilibre notre arbre:
8
/ \
3 9
/ \ \
2 5 10
/ / \
1 4 6
\
7
|
C'est le noeud 8 qui est déséquilibré, et le dernier noeud ajouté est le 7. On a donc un problème gauche-droite. Selon l'algo que j'ai fait, on obtient cet arbre:
5
/ \
3 8
/ \ / \
2 4 6 9
/ \ \
1 7 10
|
Cet arbre me parait correctement équilibré, seulement ma prof obtient un arbre legerement différent, puisqu'elle inverse les noeuds 6 et 7, elle place 7 en fils gauche de 8 et 6 en fils gauche de 7. D'une part ça me parait plus compliqué, d'autre part les arbres obtenus sont quasi-identiques, je me demandais donc si mon algo est valable puisque j'obtiens un résultat différent.
Pour ceux que ça tente, voici mon algo vite fait:
on a racine étant le noeud avec un facteur de balance déséquilibré.
Code :
- temp=racine
- racine.sag=temp.sg.sad
- temp.sag.sad=racine.sag
- temp.sag=racine.sad
- racine.sag=temp.sag
- racine.sad=temp
|
(rho le paté !)
---------------
©2008 Bleuarff Corp.