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.
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);
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.
De la entrada ya se encarga el programa principal. La
entrada está formada por diferentes casos seguidos. Cada caso contiene
un entero
seguido de una pila (una secuencia de enteros acabada con
#).
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.
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>