Bonsoir!
Je suis toujours sur un DM donné par le professeur de Java que je retravaille tout seul.
je cherche à compléter la méthode main de la classe Stack pour obtenir les sorties du cadres après l'énoncé ci-dessous.
La classe Maillon
c'est la réalisation Java d’un maillon.
Elle comprend un attribut element qui est l’élément mis dans la pile et un attribut next qui référence le maillon suivant.
La classe Maillon n’est visible que par les classes de son espace de noms.
Elle est définie dans le même fichier que la classe Stack.
La classe Maillon a deux constructeurs :
1. un constructeur qui admet un élément passé en argument, dans ce cas le maillon suivant est établi à null lors de la déclaration des attributs.
2. un constructeur qui admet un élément passé en argument et le maillon suivant.
La classe Maillon a trois méthodes ayant une visibilité par défaut :
- Object getElement() retourne l'élément associé au maillon courant
- Object next() retourne le maillon suivant
- boolean hasNext() retourne true s’il existe un maillon suivant, false sinon
Les méthodes de réalisation sont:
•void setNext(Maillon next) affecte l’attribut next avec le maillon passée en argument
•void setElement(Object o) affecte l’attribut element avec l’objet o passé en argument
La classe Stack
La classe Stack est publique, elle a un attribut top qui référence le premier maillon.
Elle a deux constructeurs:
1.un constructeur vide dans ce cas l’élément sommet est égal à null et la pile est vide et de taille zéro.
2. un constructeur qui admet un élément passé en argument de type Object, dans ce cas, il y a création d’un maillon (instance de la classe Maillon) avec l’élément suivant à null.
La classe Stack admet les quatre méthodes publiques suivantes :
- void push(Object object) place au sommet de la pile l’objet passé en argument
- Object pop() retourne l’élément qui se trouve au sommet de la pile et place l’élément suivant au sommet de la pile.
- Object first() accède au premier élément de la pile sans modifier la pile boolean
- isEmpty() retourne true si la pile est vide
Méthodes de réalisation de la classe Stack:
•void setTop(Object o) établit le sommet de la pile avec le maillon passé en argument
• Maillon getTop() retourne le sommet de la pile
• Maillon next() retourne le maillon suivant
. Les messages suivent le format suivant:
System.out.println("*** invocation de méthode *** résultat attendu :: "+ invocation de
méthode);
Par exemple pour la sortie:
L’exécution de System.out.println("*** p.isEmpty() *** must be true :: "+ p.isEmpty());
a donné : *** p.isEmpty() *** must be true :: true
L’exécution finale est :
*** p.isEmpty() *** must be true :: true
*** {titi, toto} *** :: {titi,toto }
*** p.isEmpty() *** must be false :: false
*** {3
, titi, toto} *** :: {3,titi,toto }
*** p.pop() *** must be : 3 :: 3
*** p.pop() *** must be : titi :: titi
*** {toto} :: {toto }
*** p.first() *** must be : toto :: toto
*** p *** must be : {toto} :: {toto }
*** p *** must be : {} :: {}
J'ai pensé faire
Mais je ne fais pas explicitement d'invocation de la méthode et je vois pas comment traiter la deuxième ligne par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 main{ Object Stack p; if (p.getTop == null){ Object Stack p; system.out.println("p.isEmpty() *** must be true::" p.isEmpty); }else{ system.out.println("p.isEmpty() *** must be false::" p.isEmpty) } }
Partager