Amphi3.pdf - Amphi 3 \u2022 Piles \u2022 Exceptions en Java \u2022 Files 1 Plan Amphi 3 Sommet de pile Fin de file D\u00e9but de file 2 Une file est une liste o\u00f9

Amphi3.pdf - Amphi 3 u2022 Piles u2022 Exceptions en Java...

This preview shows page 1 - 12 out of 40 pages.

Am phi 3 1 P lan • Piles Exceptions en Java • Files
Amphi 3 2 P iles et files d'attente Une pile est une liste où les insertions et les suppressions se font toutes du même côté. LIFO Une file est une liste où les insertions se font d'un côté et les suppressions se font de l'autre côté. FIFO Sommet de pile Début de file Fin de file
Amphi 3 3 U tilisation des piles et des files Les piles sont utilisées pour implanter les appels de procédures (cf. pile système). En particulier, les procédures récursives gèrent une pile de récursion . Evaluation d' expressions arithmétiques . Les files permettent de gérer des processus en attente d'une ressource du système. Servent de modèle pour réaliser systèmes de réservation, gestion de pistes d'aéroport, etc.
Amphi 3 4 Le type abstrait de données "Pile" Créer une pile vide . Tester si une pile est vide . Ajouter un élément en sommet de pile (empiler). Valeur du sommet de pile. Supprimer le sommet de pile (dépiler). e stVide(pileVide) = true estVide(ajouter(x, p)) = false valeur(ajouter(x, p)) = x supprimer(ajouter(x, p)) = p
Amphi 3 5 Intérêt des types abstraits • Les types abstraits servent à utiliser les piles (resp. les files) uniquement à travers leurs fonctions de base. • Peu importe la réalisation (qui peut varier en fonction des modules), seule compte l' interface . • La notion d'interface et de module sera développée dans le cours « Fondements de l'informatique ».
Amphi 3 6 L es piles en Java Solution 1 : utiliser des listes. Solution 2 : couple formé d’un tableau et de la hauteur de pile . 0 1 2 3 4 5 6 7 8 9 6 hauteur p 6 2 7 0 2 8 2 2 0 4 Les valeurs des cases jaunes sont inutilisées. sommet de pile
Am phi 3 7 L a classe Pile c lass Pile { static final int maxP = 10; int hauteur; int [] contenu; Pile () { hauteur = 0; contenu = new int [maxP]; } }
Am phi 3 8 C onstructeur P ile p = n ew Pile(); 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0 hauteur p
Am phi 3 9 L es piles en Java (1) s tatic boolean e stVide (Pile p) { return p.hauteur == 0; } static boolean estPleine (Pile p) { return p.hauteur == maxP; } static void vider (Pile p) { p.hauteur = 0; }
Amphi 3 10 V ider une pile s tatic void v ider (Pile p) { p.hauteur = 0; } 6 2 7 0 2 8 0 2 3 4 0 1 2 3 4 5 6 7 8 9 5 hauteur 6 2 7 0 2 8 0 2 3 4 0 1 2 3 4 5 6 7 8 9 0 hauteur Rappel : les valeurs des cases jaunes sont inutilisées. Avant Après
Am phi 3 11 L es piles en Java (2)

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture