|Implementa un Stack<T> genéricoDifícil
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 15:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Implementa un Stack<T> genérico

Difícil30 pts
ruleRestricciones
  • radio_button_unchecked
    La clase Stack debe ser genérica
  • radio_button_unchecked
    El array interno debe ser de tipo T[]

Enunciado

Implementa la clase genérica Stack<T> que representa una pila (LIFO) capaz de almacenar elementos de cualquier tipo de forma segura.

// Ejemplos de uso
const stack = new Stack<number>();
stack.push(10);
stack.push(20);
stack.push(30);

stack.pop();   // 30  (elimina y retorna el último)
stack.peek();  // 20  (solo consulta, no elimina)
stack.size;    // 2
stack.isEmpty; // false

Instrucciones:

  1. Parametriza la clase con <T>.
  2. Almacena los elementos en un array privado de tipo T[].
  3. Implementa push(item: T): void — agrega al tope.
  4. Implementa pop(): T | undefined — elimina y retorna el tope; undefined si vacío.
  5. Implementa peek(): T | undefined — retorna el tope sin eliminarlo.
  6. Implementa el getter size: number — cantidad de elementos.
  7. Implementa el getter isEmpty: boolean — verdadero si no hay elementos.

La función exportada createStack es el punto de entrada para los tests: recibe un array de números, los agrega al stack con push y retorna el resultado de pop().

Nota sobre los tests: los tests verifican comportamiento en runtime. El uso correcto de genéricos (Stack<T>, T[], T | undefined) es una restricción de TypeScript que el compilador valida, pero no cambia el resultado de ejecución — por eso no puede distinguirse via tests funcionales. La excepción es el tipo de retorno T | undefined: el test con array vacío verifica que pop() retorne correctamente undefined cuando la pila está vacía.

Restriccionesexpand_more
  • Dificultad: Difícil
  • Completa todos los test cases para obtener los 30 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Implementa un Stack<T> genérico — Difícil | Coding Challenges · Coding Challenges