• Aucun résultat trouvé

Énoncé

N/A
N/A
Protected

Academic year: 2022

Partager "Énoncé"

Copied!
2
0
0

Texte intégral

(1)

Algorithmique – Programmation Objet – Python TD n

9

Piles et Files

Licence Informatique 2ème année Université de Nice Sophia Antipolis

1 Piles

Une pileest une structure de données de type LIFO (last in first out) : le dernier entré est le premier sorti.

On supposera qu’un objet de classePiledispose des méthodes suivantes :

• estVide() : renvoie vrai si la pile est vide, faux sinon.

• sommet() : renvoie l’élément sommet de la pile.

• dépiler() : supprime de la pile le sommet.

• empiler(elt) : ajoute au sommet de la pile l’élément elt.

Écrivez les méthodes suivantes.

1. afficher() : cette méthode affiche tous les éléments de la pile.

2. dépilerKelts(k) : cette méthode dépilekéléments si la pile contient au moinskéléments, sinon elle dépile toute la pile.

3. dépilerJusquà(elt) : cette méthode dépile la pile jusqu’à l’élémentelt. L’élément elt n’est pas dépilé. Si l’élément n’appartient pas à la pile, alors la méthode dépile toute la pile.

2 Files

Une fileest une structure de données de type FIFO (first in first out) : le premier entré est le premier sorti.

On supposera qu’un objet de classeFile dispose des primitives suivantes :

• donnée(elt) : renvoie la donnée associée à l’élémentelt.

• estVide() : renvoie vrai si la file est vide, faux sinon.

• premier() : renvoie le premier élément de la file.

• défiler() : supprime de la file le premier élément.

• enfiler(elt) : ajoute dans la file l’élément elt.

Écrivez les méthodes suivantes.

1. afficher() : cette méthode affiche tous les éléments de la file.

2. défilerJusquà(elt) : cette méthode défile la file jusqu’à l’élément elt. L’élément elt n’est pas défilé. Si l’élément n’appartient pas à la file, alors la méthode défile tous les éléments de la file.

1

(2)

3 Piles et Files

Écrivez les méthodes suivantes. On pourra éventuellement utiliser une ou des piles/files temporaires, on utilisera les constructeursPile()qui renvoie une pile vide etFile() qui renvoie une file vide.

1. appartient(elt) : cette méthode de la classe Pilerenvoie vrai si l’élément appartient à la pile, faux sinon.

Attention : il est important que la pile ne change pas.

2. inverser() : cette méthode de la classeFileinverse les éléments de la file à laquelle elle est appliquée. On a le droit d’utiliser des files ou des piles temporaires.

3. inverser() : cette méthode de la classePileinverse les éléments de la pile à laquelle elle est appliquée. On interdit l’utilisation de files. Seules des piles temporaires peuvent être utilisées.

4 File de priorité

Une file de priorité est un type abstrait élémentaire sur laquelle on peut effectuer trois opérations :

• insérer un élément

• lire puis supprimer l’élément ayant la plus grande clé

• tester si la file de priorité est vide ou pas.

On ajoute parfois à cette liste l’opération « augmenter la clé d’un élément ».

On insère successivement les éléments dont les clés valent 3, 8, 4, 5, 2 ,7. Puis on lit et supprime deux fois de suite l’élément ayant la plus grande clé. Ensuite, on insère les éléments dont la clé est 5 et 1. Enfin, on extrait deux fois l’élément ayant la plus grande clé.

1. Détaillez le fonctionnement de ces opérations en donnant notamment la valeur des clés des éléments supprimés 2. Quelle est la complexité de ces opérations si vous décidez de conserver les éléments sous la forme d’un tableau dont vous maintenez le tri ? Comment pouvez-vous maintenir le tri de façon efficace si un nouvel élément est introduit et si la valeur d’une clé est augmentée ?

3. Proposez une structure de données pour gérer ces opérations.

2

Références

Documents relatifs

Alors H est

On s’intéresse dans tout ce problème à une suite infinie de lancers d’une pièce équilibrée autour duquel deux joueurs J et J 0 s’affrontent. Le joueur J l’emporte si

Emplacement de la pile.- Pour ˆetre sˆ ur que le programme et la pile n’interf`erent pas, le microprocesseur i8086 a ´et´e con¸cu de telle fa¸con que le code et les

Exemple.- ´ Ecrivons un programme QBasic qui demande un entier naturel (de deux octets) et fait appel ` a un sous-programme en langage machine qui passe la valeur en

5. Sur la première pile uniquement, en utilisant le vocabulaire introduit, indiquer ce qui arrive aux électrons au niveau de chacune des électrodes en précisant celle

Pour prouver la correction d’une fonction récursive, on procède en général par récurrence : on prouve d’abord que la sortie de la fonction est correcte pour les cas

Pour supprimer un des fi chiers d’une pile, ouvrez simplement la pile et faites glisser l’élément à l’extérieur, vers l’endroit où vous voulez le déposer.. Pour supprimer

Un tableau en Java est un objet qui peut contenir  un certain nombre de valeurs, dits éléments, d'un même type.. Ce type peut