Pile générique avec restriction de type

Java Medium generics

Tâche «Pile générique avec restriction de type»

Implémentez une classe paramétrée GenericStack<T extends Number>, qui représente une pile de nombres (Integer, Double, etc.). La classe doit contenir les méthodes push(T element), T pop(), T peek() et boolean isEmpty(). Utilisez un tableau ou un ArrayList en interne. Dans la méthode main, lisez depuis l’entrée standard une séquence de lignes : la première ligne est le type de nombres (Integer ou Double), la deuxième ligne est le nombre d’opérations n, puis n lignes d’opérations : push <valeur>, pop, peek. Pour chaque opération, affichez le résultat (pour pop et peek — la valeur, pour push — 'ok'). Si la pile est vide lors de pop ou peek, affichez 'error'.

Format d\ entrée

La première ligne est le type de nombres (Integer ou Double). La deuxième ligne est un entier n (1 ≤ n ≤ 100). Ensuite, n lignes, chacune contenant l’une des commandes : push <nombre>, pop, peek.

Format de sortie

Pour chaque commande, affichez le résultat (ok, nombre ou error) sur une ligne séparée.

Exemples

Exemple 1

ENTRÉE
Double 4 push 3.14 peek pop pop
SORTIE
ok 3.14 3.14 error
main.java