Add arbre

This commit is contained in:
flyingscorpio@pinebookpro 2021-09-28 09:04:05 +02:00
parent bd6ded20c5
commit 65141526cc

View file

@ -0,0 +1,71 @@
Algorithme : Opérations de base sur des arbres n-aires
Début
Var T: arbre
Fonction EstVide(T: arbre): bool
Si T = nil:
Retourner Vrai
Sinon
Retourner Faux
FinSi
FinFonction
Fonction FilsGauche(T: arbre)
Retourner T->gauche
FinFonction
Fonction FilsDroit(T: arbre)
Retourner T->droit
FinFonction
Fonction RécupérerFilsGaucheDroit(T: arbre)
Si EstVide(T):
Retourner nil
FinSi
Retourner (FilsGauche(T), FilsDroit(T))
FinFonction
Fonction EstFeuille(T: arbre, N: noeud): bool
Si EstVide(T):
Retourner Faux
FinSi
FinFonction
Fonction CalculerHauteurArbre(T: arbre): int
Si EstVide(T):
Retourner 0
FinSi
Si RécupérerFilsGaucheDroit(T) = nil:
Retourner 1
FinSi
Retourner 1 + max(CalculerHauteurArbre(FilsGauche(T)), CalculerHauteurArbre(FilsDroit(T)))
FinFonction
Fonction NombreNoeuds(T: arbre): int
Si EstVide(T):
Retourner 0
FinSi
Retourner 1 + NombreNoeuds(FilsGauche(T)) + NombreNoeuds(FilsDroit(T))
FinFonction
Fonction NombreFeuilles(T: arbre): int
Si EstVide(T):
Retourner 0
Sinon Si RécupérerFilsGaucheDroit(T) = nil
Retourner 1
FinSi
Retourner NombreFeuilles(FilsGauche(T)) + NombreFeuilles(FilsDroit(T))
FinFonction
Fonction NombreInterne(T: arbre): int
Si EstVide(T):
Retourner 0
Sinon Si RécupérerFilsGaucheDroit(T) = nil
Retourner 0
FinSi
Retourner 1 + NombreInterne(FilsGauche(T)) + NombreInterne(FilsDroit(T))
FinFonction
Fin