Travaux dirigés Java, séance n° 7 (Les interfaces comme TADs) [Link]
html
P P L O E J (TD)
L I C TAD, A P
I.
N T
(Lien permanent: [Link] (. pdf ))
. I P
Soit un TAD pile de caractères, défini par l'interface:
/**
Interface Pile
*/
interface Pile {
final int MAX = 8;
public void empiler(char c);
// Empile un char
public char sommet();
// Retourne le sommet de la pile
public void depiler();
// Retire le sommet de la pile
public boolean vide();
// Teste si la pile est vide
public boolean pleine();
// Teste si la pile est pleine
};
On peut réaliser cette pile par une chaîne de caractères ou un tableau de caractères etc.
. I D L P
On peut utiliser StringBuilder pour mémoriser les caractères d'une pile. Déclarer par
exemple :
StringBuilder s = new StringBuilder(MAX);
On peut rajouter un caractère c à une chaîne s à l'endroit i par :
[Link] (i, c);
On peut consulter le i-ème caractère d'une chaîne s par :
1 of 2 4/22/2022, 1:39 PM
Travaux dirigés Java, séance n° 7 (Les interfaces comme TADs) [Link]
c = [Link] (i);
Exercices :
1. Utiliser ce qui précède pour créer une classe MaPile qui implémente une pile avec
StringBuilder .
Indication : empiler en rajoutant les caractères les uns derrière les autres, par
exemple "b", "br", "brd" etc.
2. Ecrire un programme test qui lit des caractères et les imprime en ordre inverse.
Dernier caractère lu est ' # '.
. I D L P
On peut utiliser un tableau Java pour mémoriser les caractères d'une pile (c.f. TD2).
Déclarer par exemple:
char[] t = new char[MAX];
L'accès au éléments du tableau se fait normalement par indice, e.g. t[i] .
Exercice :
1. Créer une classe TaPile qui implémente une pile avec un tableau cette fois-ci. (c.f.
TD2).
2. Reprendre le programme test précédent pour tester cette 2e implémentation.
That's all folks
2 of 2 4/22/2022, 1:39 PM