Vous êtes sur la page 1sur 2

Université IBN ZOHR Année Universitaire 2021-2022

Faculté des Sciences Structures de données


Département d'Informatique Semestre 4

TD3 : LES ARBRES (Solution)

Exercice 1 :
- On considère l’arbre suivant :
A

B C D

E F G

H
Donner la transformation de cet arbre en un arbre binaire et le résultat de parcours infixé,
prefixé et postfixé.
Réponses :

Transformation de l’arbre en un arbre binaire en respectant les règles

Parcours infixé = GRD


AHEFBCGD E C
Parcours préfixé = RGD
ABEHFCDG
Parcours postfixé = GDR
HFEGDCBA
H F D

1/2
Exercice 2 :
Dites ce que fait la fonction « fct » suivante et déduire les déclarations des variables.
void fct(Pointer ptr,Vector v[],int *i)
{
if (ptr!=NULL)
{
v[*i].inf=ptr->inf;
v[*i].gauche=ptr->gauche;
v[*i].droite=ptr->droite;
*i=*i+1;
fct(ptr->gauche,v,i);
fct(ptr->droite,v,i);
}
}
Réponse :
À partir des instructions on peut en déduire que Vector et Pointer sont deux types définis
par :
typedef struct a Vector ;
typedef struct a* Pointer ;
struct a { type inf ;
Pointer gauche ;
Pointer droite ;
};

Cette fonction permet de lire un arbre pointé par ptr en utilisant un parcours prefixé et de
stocker ses nœuds dans un tableau du même type V. L’information contenue dans un nœud
inf étant de type quelconque.

2/2

Vous aimerez peut-être aussi