Skip to content

Synthèse


Exercices

Exercice 1 : structures et interfaces

A. Quelle opération ne fait pas partie de l’interface d’une pile ?
1. ajouter un élément à la pile
2. supprimer l’élément le plus récent de la pile
3. retirer l’élément le plus ancien de la pile

B. Quelle opération ne fait pas partie de l’interface d’une file ?
1. ajouter un élément à la file
2. supprimer l’élément le plus récent de la file
3. retirer l’élément le plus ancien de la file

C. Pour que deux implémentations du même type abstrait soient interchangeables, il faut que :
1. la complexité en temps soit la même dans les deux cas
2. l’interface de la structure de données soit la même dans les deux cas
3. les deux implémentations soient parfaitement identiques

Exercice 2 : choisir une structure de données

Associer une structure de données adaptée à chaque situation.

  • Dans une administration, on souhaite insérer dans une structure de données les doléances reçues afin de les traiter selon leur ordre d’arrivée. On aura plutôt intérêt à les enregistrer dans :
    a) une liste b) une pile c) une file

  • Pour un logiciel, on doit enregistrer la liste des actions dans une structure de données de sorte à voir la dernière action en priorité. On enregistrera donc les actions dans :
    a) une liste b) une pile c) une file

  • On souhaite insérer dans une structure de données les différentes hauteurs d’un arbre au fil des années sans y insérer les années. La structure de données la plus adaptée est :
    a) une liste b) une pile c) une file

Exercice 3 : algorithmes sur les files et les piles

Implémentation File
Implémentation Pile

Dans ces deux questions, on utilise une implémentation des structures en POO. Pour tester les fonctions, il faut importer les classes correspondantes dans le fichier de travail.

Les structures ont les primitives (ici des méthodes) usuelles :

  • Pour les files : enfiler(elt), defiler(), est_vide() testant si la file est vide. f = File() crée une nouvelle file.
  • Pour les piles : empiler(elt), depiler(), est_vide() testant si la file est vide. p = Pile() crée une nouvelle file.
  • On dispose d’une file contenant des entiers, écrire une fonction qui renvoie une file dont on aura enlevé les nombres impairs, mais dont les nombres pairs sont dans le même ordre qu’initialement.

    ###

  • On dispose d’une pile contenant des entiers, écrire une fonction qui renvoie une pile dont on aura enlevé les nombres pairs, mais dont les nombres impairs sont dans le même ordre qu’initialement.

    ###

Exercice 4 : synthèse

Structure Définition Cas d'utilisation Accès élément (coût) Ajout élément (coût)
Liste chaînée
Tableau statique
Tableau dynamique
File
Pile
Tableau associatif