Académique Documents
Professionnel Documents
Culture Documents
Exercice 3:
En utilisant une pile, écrivez un programme qui vérifie si un texte lu sur l'entrée standard est correctement
parenthèse. Il s'agit de vérifier si à chaque parenthèseur fermant rencontré},], ou ) correspond son parenthèseur
ouvrant {, [ ou (.
Par exemple : la chaîne ((( ) ) ( ) ) ( ) est bien parenthèsée et proprement écrite. Mais les chaînes )( )( ou ( ) ) ne le
sont pas.
Exercice 4 :
1. Soient deux files F1 et F2 et une pile P. La file F1 contient des éléments entiers, F2 et P sont vides.
Ecrire une fonction nommée Deplacer_File qui dépose dans F2 les éléments impairs de F1 et laisse dans F1 les
éléments pairs dans l’ordre inverse.
Exemple
- F1 a pour éléments [1,2,3,4,5,6] (1 est le 1er élément de F1).
- Après l’exécution de la fonction Deplacer_File on aura : F1 [6,4,2] et F2 [1,3,5].
3. Soient deux piles P1 et P2 et une file F. La pile P1 contient des entiers, P2 et F sont vides.
Ecrire une fonction Rotation_Pile qui permet d’effectuer la rotation de N éléments de la pile P1. Cette fonction
doit avoir comme arguments la pile P1 et l’entier N et devra retournée la pile obtenue après rotation.
Exemple
• Si P1 contient les éléments [2,6,9,8,12] (12 est le sommet de P1) et N = 2,
• Après l’exécution de la fonction rotation on aura : P1 [8,12,2,6,9]
2
Partie 2 : LES ARBRES
Exercice 1 :
- Ecrire en langage C une fonction ajouter_noeud qui prend en arguments la racine d’un arbre binaire de recherche
ABR et une valeur entière x et qui permet d’insérer un nœud de valeur x dans cette ABR. Cette fonction doit retournée
la racine de l’ABR.
- Ecrire une fonction supprime_noeud qui permet de supprimer un entier de l’arbre. L’algorithme global est le
suivant :
- Si le nœud à enlever est une feuille, on l’enlève.
- Si c’est un sommet qui n’a qu’un fils, on le remplace par ce fils.
- Si c’est un sommet qui a deux fils, le remplacer par le sommet de plus grande valeur dans le sous-arbre
gauche, puis supprimer ce sommet en appelant récursivement la fonction.
- Dans le programme principal, créez l’ABR correspondant à la suite de valeurs suivante :
5 1 11 9 3 10 2 15 6 4 20 13
- Supprimez successivement les nœuds suivants : 13, 1 et 11
- Ecrire une fonction qui permet d’afficher l’ordre des nœuds de l’ABR correspondant au parcours infixé.
- Ecrire une fonction tri qui permet de trier un tableau d'entiers donné en argument à l'aide d'un arbre binaire de
recherche. Cette fonction doit avoir comme arguments un tableau non trié ainsi que sa taille et devra retourner le
nouveau tableau trié par ordre croissant en utilisant un ABR.
Exemple d’exécution:
3
Exercice 2:
- Un Arbre Binaire de Recherche (ABR) à la particularité suivante :
Pour chaque nœud dans l’arbre ayant une valeur V :
i. Tous les fils se trouvant à droite ont une valeur supérieure à V.
ii. Tous les fils se trouvant à gauche ont une valeur inférieure à V.
- Un arbre binaire est dit complet si chacun de ses nœuds possède zéro ou deux fils.
1- Ecrire une fonction récursive qui teste si un arbre binaire, représenté par sa racine en entrée, est un arbre binaire
de recherche (ABR).
2- Ecrire une fonction récursive qui teste si un arbre binaire, représenté par sa racine en entrée, est un arbre binaire
complet.
3- Dans le programme principal, tester si un arbre est un arbre binaire de recherche complet.