Programmation par les Objets en Java (TD7)
Les interfaces comme TADs, avec plusieurs implémentations.

Najib Tounsi

Interface Pile

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.

1ère implémentation de la pile

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 :

s.insert (i, c);

On peut consulter  le  i-ème caractère d'une chaîne s par :

c = s.charAt (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 '#'.

2ème implémentation de la pile

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