Aller au contenu

Arbres Binaires — Parcours et Hauteur

Préfixe, infixe, postfixe, largeur

Exercice Débutant · Algorithmique · prepa scientifique et economique (CPGE)

Enonce

Implémenter une classe Noeud puis les 5 fonctions suivantes qui renvoient une liste (ou un entier pour la hauteur) :

  1. prefixe(racine) — parcours préfixe (R, G, D)
  2. infixe(racine) — parcours infixe (G, R, D)
  3. postfixe(racine) — parcours postfixe (G, D, R)
  4. largeur(racine) — parcours en largeur (BFS itératif avec une file)
  5. hauteur(racine) — hauteur de l'arbre (−1 pour l'arbre vide)

Signature attendue

class Noeud:
def prefixe(racine) -> list:
def infixe(racine) -> list:
def postfixe(racine) -> list:
def largeur(racine) -> list:
def hauteur(racine) -> int:

Exemples

  • prefixe(Noeud(1, Noeud(2, Noeud(4), Noeud(5)), Noeud(3))) → [1, 2, 4, 5, 3]
  • hauteur(Noeud(1, Noeud(2, Noeud(4), Noeud(5)), Noeud(3))) → 2

📖 Rappel de cours

Un arbre binaire est soit vide, soit un nœud possédant une valeur, un sous-arbre gauche et un sous-arbre droit (définition récursive).

Les 4 parcours :

  • Préfixe (racine, G, D) — utile pour sérialiser un arbre
  • Infixe (G, racine, D) — donne les valeurs triées dans un ABR
  • Postfixe (G, D, racine) — utile pour libérer la mémoire
  • Largeur (BFS, niveau par niveau) — nécessite une file

Les parcours préfixe / infixe / postfixe sont naturellement récursifs. Le parcours en largeur nécessite une structure de file (FIFO).

Hauteur : $h(\text{vide}) = -1$, $h(n) = 1 + \max(h(n.g), h(n.d))$.

← Exercices d'algorithmique en Python — tris, dichotomie, récursivité

Exercices du meme theme

  • Sac à dos (Programmation Dynamique)
  • Plus Longue Sous-séquence Commune (LCS)
  • Détection de Cycle (Floyd)
  • Arbre Binaire de Recherche (ABR)
  • Tri par Tas (Heap Sort)
  • Algorithme de Kadane

La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Essai gratuit
Testez toutes les fonctionnalités sans engagement
En continuant, vous acceptez notre politique de confidentialité.
Déjà abonné ? Se reconnecter
Recevez un lien de connexion par email
Parcourir gratuitement →
Aperçu limité · sans inscription · sans vérification IA
€4,99
/ mois · accès illimité · résiliable
Paiement sécurisé
En vous abonnant, vous acceptez nos conditions et politique de confidentialité.
Résiliation possible depuis votre espace PayPal.

Chargement...

Initialisation de l'environnement

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Progression
0 / 0
Solo
— / —
Python... SQL...
Recherche
🔬 Bac a sable Python ↗ 🧪 Bac a sable SQL ↗ 📝 Concours blanc ↗ 🏖️ Code à la plage ↗ 📚 Listes de rentrée ↗ 🛠️ Admin ↗
Tu aimes PrepaPython ?
Fais-le savoir !
← Retour à l'accueil Mentions legales & confidentialite