Structures de données et de fichiers
Tous les énoncés  Enoncé précédent   Recueil d’exercices ( Enoncés – Corrigés )  Enoncé suivant

Enoncé 5 : Récursivité - Arbres  Corrigé 5

Exercice 1 : Définition de fonctions récursives

Soit la fonction Reste(L) qui fournit la liste linéaire chaînée L sans le premier élément. Utiliser cette fonction pour trouver les fonctions récursives suivantes:

- TROUVE ( L, N) qui détermine si l'élément N existe ou non dans la liste linéaire chaînée L .

- COMMUN ( L1, L2 ) qui détermine si les deux listes linéaires L1 et L2 ont au moins un élément en commun.

- TOUS (L1, L2) qui détermine si tous les éléments de L1 existent dans L2.

 

Exercice 2 : Puzzle

Soit la procédure Construire ( Objet, Arbre1, Arbre2, Arbre) qui construit un arbre de racine Arbre à partir d'une valeur Objet et de deux sous arbres Arbre1 et Arbre2.

a) Ecrire cette procédure

b) Utiliser cette procédure pour compléter la fonction récursive Insérer ( X, A) ci-dessous qui insère l'élément X dans un arbre de recherche binaire et qui rend la référence de sa racine. Justifier.

SI A = NIL :

        ?

SINON

        SI ? :

                Construire ( ? , ? , ? , ?)

        SINON

                ?

c) Faire une trace en donnant l'état de l'arbre après chacune des opérations suivantes :

Arb = NIL ; Insérer(6, Arb) ; Insérer(1, Arb) ; Insérer(3, Arb); Insérer(8, Arb) ; Insérer(7, Arb).

 

Exercice 3 : Représentation séquentielle

Soit un arbre de recherche binaire représenté sous la forme séquentielle suivante :

- l'arbre est représenté par un tableau A

- le noeud à la position P du tableau A est le père implicite des noeuds aux positions 2P (fils gauche) et 2P+1 (fils droit).

a) Peut-on garder toutes les opérations du modèle sur les arbres de recherche binaire sous cette représentation ? Doit-on rajouter d'autres ?

b) Implémenter les opérations possibles.

c) Ecrire l'algorithme non récursif d'insertion d'un élément X dans un arbre de recherche binaire ainsi représenté.

 

* * * * *