BTGI DEVOIR SURVEILLE EN ALGORITHMIQUE Durée : 2heures Questions de cours 1. Qu'est un type de donnée abstrait 2. Comparer une structure de donnée implémentée en utilisant un tableau et une structure de donnée implémentée en utilisant une liste chainée 3. Définir une liste doublement chainée 4. Expliquer comment est implémentée une file en utilisant un tableau circulaire 5. Dessiner une structure de données en arbre et définir les termes suivants Racine Nœud Feuille Branche Hauteur ou profondeur 6. Définir un arbre binaire de recherche ( ABR) Exercice 1. 1. Si, partant d’une pile p vide, on ajoute (en empilant), les entiers 1, puis 2, puis 3, puis 4, puis 5 et que, ensuite, on supprime (par dépilement) deux éléments, quels entiers contient la pile ? 2. Même question avec une file (utiliser les fonctions d’ajout et de suppression des files à laplace de l’empilement et du dépilement) Exercice 2: Soit la structure de l'arbre suivant utilisé pour représenter une structure d'entiers: 1. L'arbre ci-dessus est-il binaire? 2. Est-ce qu'il représente un arbre binaire de recherche? 3. Donner une structure appelé nœud représentant un élément de cette structure arborescente. 16/04/2017 anouar 1 BTGI 4. Donner le rendu (l'affichage) de l'arbre selon les trois parcours suivants: Parcours préfixe Parcours infixe Parcours postfixe 5. soit l'expression: (a+b)*c-d/e on veut la représenter en utilisant un arbre syntaxique, les feuilles de l'arbre contiendront les opérandes et les autres nœud les opérateurs, le parcours de l'arbre sera en postfixé, dessiner l'arbre correspondant à cette expression arithmétique. Exercice 3: Ecrire un algorithme qui permet de compter les éléments d'une liste chainée de deux façons différentes: 1. Itérative 2. Récursive Exercice 4: Ecrire les algorithmes récursifs qui permettent: 1. D'ajouter un élément x donné en queue d'une liste 2. D'ajoute un élément x donné après un élément y donné Exercice 5: 1. Ecrire un algorithme (non récursif) qui permet de supprimer un élément en tête de liste (le premier élément de la liste) 2. Transformer cet algorithme pour qu'il efface tout les éléments de la liste Exercice 6 . 1. Ecrire une fonction récursive deux_puiss(n en entier) qui calcule 2n (en utilisant seulement le produit) avec n est un nombre entier positif ou nul. 2. On utilise un tableau pour stocker un nombre binaire de 8 bits. Ecrire un algorithme qui permet de saisir la valeur binaire et de calculer l’équivalent décimal de ce nombre binaire. Dans cet algorithme faites appel à la fonction deux_puiss (n) que vous avez définie dans l’exercice précédent. 3. nous allons maintenant écrire un algorithme qui fait l'opération inverse (la conversion d'un nombre décimal en binaire) en utilisant une structure de données pile, établir l'algorithme qui permet de faire cette conversion en utilisant: une structure pile implémentée sous forme de tableau une procédure initialiser la pile une procédure empiler un entier x une procédure depiler nota: faites un schéma pour expliquer 16/04/2017 anouar 2