Pop N S33148


Warning: This problem has some issue.

The system has detected that this problem may have some issue, as a mistake in its statement or a wrong solution. It should be soon be repaired by its problem setter.

Solution status: C++ . (red languages have some issue).

It is not recommended to try to solve this problem until this warning disapears.

Statement
 

pdf   zip   tar

Implementa un método público de la clase Stack<T> que elimine el elemento i-ésimo desde la cima de la pila. Es decir, consideramos que la cima de la pila tiene índice 0.

La declaración es la siguiente:

/**
 * @post: Se ha eliminado de la pila el elemento `i`-ésimo, con `i` en el
 *        rango de 0 a N-1 (con 0 la cima), siendo N el tamaño de la pila. 
 *        Si el índice no está en el rango 0 a N-1, la pila no cambia.
 */
void eliminar(int i);

Observación

Para poder evaluar el uso de punteros, no uséis otros métodos, ni públicos ni privados de la clase para resolver el problema, acceded siempre a los miembros privados directamente.

Observad que en la entrada la pila se lee empezando por la base hasta la cima, que aparece la última, y en cambio en la salida es al revés (las marcas <top> y <bottom> lo aclaran).

Los ficheros públicos (icono del gatito) contienen:

stack.hh la clase Stack<T>
main.cc el programa principal (gestiona la entrada y salida)
Makefile para compilar con make en el terminal
.vscode para compilar y depurar con F5

Para entregar solo hay que enviar el fichero stack.hh modificado.

Entrada

De la entrada ya se encarga el programa principal. La entrada está formada por diferentes casos seguidos. Cada caso contiene un entero ii seguido de una pila (una secuencia de enteros acabada con #).

Salida

De la salida también se encarga el programa principal. La salida muestra la pila resultante después de eliminar el elemento i-ésimo desde el top.

Public test cases
  • Input

    0
    1 2 3 #
    
    3
    1 2 3 4 5 #
    
    5
    1 2 3 4 5 #
    
    1
    1 2 3 4 5 #
    
    6
    1 2 3 #
    

    Output

    <top> 2, 1 <bottom>
    <top> 5, 4, 3, 1 <bottom>
    <top> 5, 4, 3, 2, 1 <bottom>
    <top> 5, 3, 2, 1 <bottom>
    <top> 3, 2, 1 <bottom>
    
  • Information
    Author
    Mª Lluïsa Bonet i Pau Fernández
    Language
    Spanish
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++