Type abstrait Arbre binaire¶
Nous avons vu ce qu'était un arbre binaire, ainsi que le vocabulaire général et les différentes mesures sur les arbres.
Avant de passer à la partie implémentation, proposons une interface minimale du type abstrait Arbre
.
Note
Dans toute la suite du cours, on utilisera le type Arbre
pour désigner un arbre binaire.
On rappelle qu'un arbre binaire est soit :
- un arbre vide
- un arbre caractérisé par un noeud racine, un sous-arbre gauche et un sous-arbre droit, eux-mêmes étant des arbres binaires.
Type abstrait Arbre
Utilise : Noeud, Element, Bool
Opérations :
\(nvABV :~\rightarrow Arbre\)
\(nvAB :~Noeud \times Arbre \times Arbre \rightarrow Arbre\)
\(racine :~Arbre \rightarrow Noeud\)
\(gauche :~Arbre \rightarrow Arbre\)
\(droite :~Arbre \rightarrow Arbre\)
\(contenu :~Noeud \rightarrow Element\)
\(est\_vide :~Arbre \rightarrow Bool\)
Préconditions (\(a\) : Arbre) :
\(racine(a)\) est défini si et seulement si \(\neg est\_vide(a)\)
\(gauche(a)\) est défini si et seulement si \(\neg est\_vide(a)\)
\(droite(a)\) est défini si et seulement si \(\neg est\_vide(a)\)