DS2 - Enoncé
DS2 - Enoncé
DS2 - Enoncé
N. B. : La qualité de la rédaction et la rigueur des raisonnements seront pris en compte dans la notation.
Exercice1 : Tri
Soit la fonction de tri suivante :
return p
#programme principal
exemple=[3,1,4,2]
resultat=trier(exemple)
Implémentation en python
Un arbre binaire peut être représenté par une liste :
Un arbre vide : a = [ ]
Un arbre non vide : a = [ étiquette_racine, fils_Gauche , fils_Droit]
Exemple :
Le deuxième arbre de l’exemple ci-dessus est représenté par la liste :
A=[14,[ 11,[5,[],[]],[8,[],[]] ],[13,[9,[],[]],[4,[],[]]]]
Numérotation hiérarchique des nœuds d’un arbre binaire
La numérotation hiérarchique des nœuds d’un arbre binaire a consiste à associer à chaque nœud un numéro
compris entre 0 et n-1 (n nombre de nœuds) par un parcours en largeur partant de la racine (numéro 0) et en
parcourant chaque niveau de gauche à droite jusqu’au dernier nœud : le plus profond et le plus à droite
(numéro n-1|).
Dans les exemples suivants, le numéro de chaque nœud sera noté en-dessous de son étiquette.
Question 1 :
Ecrire les fonctions de base vues au cours : vide(a) ; val(a) ;filsGauche(a) ; filsDroit(a)
Question 4 :
Ecrire la fonction nombreNiveaux(a) qui retourne le nombre
de niveaux d’un arbre a.
Exemple :
>>> nombreNiveaux(a)
3
Question 5 :
Ecrire la fonction indiceNiveau(n) qui retourne le numéro du nœud le plus à gauche d’un niveau n d’un
arbre binaire complet.
Aide : Liste retournée par la
fonction parcourir(a)
Indices 0 1 2 3 4 5 6
étiquettes 14 11 13 5 8 9 4
numéro niveaux : 0 1 2
Question 8 :
Ecrire la fonction niveaux(a) qui affiche les numéros des niveaux et la liste des nœuds correspondants :
Exemple :
>>> niveaux(A)
0 : [14]
1 : [11, 13]
2 : [5, 8, 9, 4]
Question 9 :
Ecrire la fonction estArbreComplet(a) qui retourne True si a est un arbre binaire complet, False sinon.
Question 13 :
Ecrire la fonction estUnTas(T) qui retourne True si le tableau T est un tas, False sinon.
Question 14 :
Si l’on désire ajouter le nœud ayant la valeur 5 au 2ème tas de l’exemple ci-dessus expliquer sans écrire de
programme comment le faire puis dessiner l’arbre après insertion et la liste correspondante .