Vous êtes sur la page 1sur 3

Les algorithmes récursifs de recherche

Objectifs :

 Manipuler des programmes traitant les algorithmes récursifs de


recherche.

Objectifs Spécifiques:

 Développer des programmes C qui permet d’implémenter les différents


algorithmes de recherche d’une façon récursive
 Maitriser les structures dynamiques en manipulant la recherche, selon
des critères tels que la position et la valeur, dans les listes, piles, files et
arbre.

Pré-requis :

 Atelier programmation 1
 Les arbres et les graphes
 Les listes
 Les piles et les files
 Les pointeurs
 La récursivité

Volume horaire

 6 Heures

1
Exercice 1 : recherche dans une liste

- Définir la structure Liste d’une liste chaînée


- Ecrire un code C qui permet de créer la liste ordonnée suivante :

- Ecrire un programme principal où vous mettez en œuvre les différentes fonctions citées ci-
dessous, d’une façon interactive avec l’utilisateur et cela via un menu :
1. Fonction Recherche_dicho(Liste L, int elt) : qui permet de chercher d’une manière
dichotomique la cellule contenant la valeur elt, retourne 1 si elt est trouvée, 0 sinon.
2. Fonction Recherche_seq(Liste L, int elt) : qui permet de rechercher d’une manière
séquentielle la valeur elt, dans la liste L, retourne 1 si elt est trouvée, 0 sinon.
3. Fonction Recherche_pos(Liste L, int pos) : qui permet de rechercher la valeur ayant la
position pos, dans la liste L, retourne la valeur de pos trouvé, 0 sinon.

Exercice 2 : recherche dans un arbre

- Définir la structure d’un arbre binaire de recherche ABR contenant un entier, un pointeur
vers le fils gauche et un autre vers le fils droit.
- Ecrire un code C qui permet de créer l’arbre binaire de recherche suivant :

- Ecrire un programme principal où vous mettez en œuvre les différentes fonctions citées ci-
dessous, d’une façon interactive avec l’utilisateur et cela via un menu :
1. affichage_préfixé(ABR*) : qui permet d’afficher les éléments de l’arbre selon un parcours
préfixé.

2
2. affichage_postfixé(ABR*) : qui permet d’afficher les éléments de l’arbre selon un
parcours infixé.
3. affichage_infixé(ABR*) : qui permet d’afficher les éléments de l’arbre selon un parcours
postfixé.
4. trouve_noeud(int elt, ABR*) : qui prend en argument un entier et un arbre et qui renvoie
l’adresse d’un noeud de l’arbre contenant elt ou NULL si cet entier n’est pas dans l’arbre.
5. pere_du_noeud(int elt, ABR*) : qui prend en paramètre une valeur et la racine de l’arbre
et cherche le père de la valeur elt dans l’arbre, elle retourne la valeur du père s’il est trouvé et
0 sinon.

Vous aimerez peut-être aussi