Menu


1NSI

Les exercices python à connaître

programme de première
E1 : listes
E2 : listes
E3 : listes
E4 : tri par insertion
E5 : tri par séléction
E6 : dictionnaires / string
E7 : tuple
E8 : boucle / booléen / liste
E9 : string
E10 : dictionnaire / fonctions
E11 : booléens / listes
récursivité
E1 : somme d'entiers
E2 : chiffres romains
E3 : factorielle
E4 : rendu de monnaie
POO
E1 : la classe Chien
E2 : carrés semi-magiques
E3 : filtre sur une pile
E4 : durées en POO
Arbres
E1: Hauteur et taille d'un arbre
E2: parcours 1
E3: parcours 2
E4: Recherche dans un ABR
E5: Arbre binaire additif
E6: Arbre binaire de recherche
Diviser pour régner
E1 : sommet d'un tableau
E2 : Indice d'une panne
E3 : calcul d'une puissance
Sécurisation des communications
E1 : code César
E2 : Vigenre

parcours 2

On défini un arbre binaire par :

  • Soit un arbre binaire vide (souvent appelé nil).
  • Soit c'est un nœud qui possède une étiquette et deux sous-arbres binaires, un à gauche, un à droite, possiblement vides l'un et/ou l'autre.

On considère l'algorithme suivant qui décrit un parcours en largeur sur un arbre binaire :

  • On suppose l'arbre non vide.
  • On place l'arbre dans une file
  • Tant que la file n'est pas vide, on défile un élèment, on affiche l'étiquette de sa racine et on place dans la file chacun des sous arbres (s'ils ne sont pas vides) en commençant par placer le sous arbre gauche puis le droit.

Les arbres binaires sont ici modélisés dans Python avec un style POO (Programmation Orientée Objet).
On dispose également d'une classe File implémentant la structure de donnée des files.

Compléter la fonction largeur en bas du script suivant. Cette fonction prend en argument une instance de la classe ArbreBinaire et affiche les étiquettes des noeuds de cet arbre parcouru avec un parcours en largeur.