Pilha genérica com restrição de tipo

Java Medium generics

Tarefa «Pilha genérica com restrição de tipo»

Implemente uma classe parametrizada GenericStack<T extends Number>, que representa uma pilha de números (Integer, Double, etc.). A classe deve conter os métodos push(T element), T pop(), T peek() e boolean isEmpty(). Internamente, use um array ou ArrayList. No método main, leia da entrada padrão uma sequência de linhas: a primeira linha — o tipo dos números (Integer ou Double), a segunda linha — o número de operações n, em seguida n linhas com operações: push <valor>, pop, peek. Para cada operação, exiba o resultado (para pop e peek — o valor, para push — 'ok'). Se a pilha estiver vazia ao executar pop ou peek, exiba 'error'.

Formato de Entrada

A primeira linha — o tipo dos números (Integer ou Double). A segunda linha — um número inteiro n (1 ≤ n ≤ 100). Em seguida, n linhas, cada uma contendo um dos comandos: push <número>, pop, peek.

Formato de Saída

Para cada comando, exiba o resultado (ok, número ou error) em uma linha separada.

Exemplos

Exemplo 1

ENTRADA
Double 4 push 3.14 peek pop pop
SAÍDA
ok 3.14 3.14 error
main.java