84 lines
2.1 KiB
Text
84 lines
2.1 KiB
Text
Algorithme : Opérations de base sur des arbres n-aires
|
|
|
|
Début
|
|
|
|
Var T: arbre
|
|
Var F: file
|
|
|
|
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
|
|
Si RécupérerFilsGaucheDroit(N) = nil
|
|
Retourner Vrai
|
|
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
|
|
|
|
Procédure ParcoursLargeur(T: arbre)
|
|
Si EstVide(T):
|
|
Quitter
|
|
FinSi
|
|
Afficher(T)
|
|
Enfiler(F, FilsGauche(T))
|
|
Enfiler(F, FilsDroit(T))
|
|
ParcoursLargeur(Défiler(F))
|
|
FinProcédure
|
|
|
|
Fin
|