Implementeu un nou mètode de la classe Stack que cumpli el següent objectiu:
Es vol crear un programa maliciós que infecti l’estructura d’un servidor, que està format per una pila de strings. El servidor pot variar de mida. Si aquest està compost per un nombre parell d’elements, el virus es trobarà al top de la pila i haurà d’infectar al tercer element a partir del top i retornar el valor d’aquest element ja contagiat. En el cas que el nombre sigui senar, el virus es trobarà a la part del fons de la pila i farà el mateix procés, però en aquest cas es encarregarà d’infectar al tercer element des de la part del fons.
A continuació, haureu de buscar dins stack.hpp la part:
// Pre: La pila implícita té tres elements o més. // Post: Si el tamany del stack es parell, retorna el tercer element des del top modificat amb el valor //del element del top. //En el cas de ser senar, retorna el tercer element des del fons modificat amb el valor del element del //fons. // Descomenteu les següents dues linies i implementeu el mètode: //T infecta(){ //}
Haureu de descomentar les dues línies que s’indiquen i implementar aquest mètode. No toqueu la resta de la implementació de la classe.
D’entre els fitxers que s’adjunten a l’exercici també hi ha program.cpp (programa principal) i Makefile per a compilar. Per a pujar la vostra solució, heu de crear el fitxer solution.tar així:
tar cf solution.tar stack.hpp
ENTRADA
La entrada del programa és una seqüència d’instruccions del següent tipus que s’aniran aplicant sobre una pila que se suposa inicialment buida:
push a (a és un string) push b push c push d push e top infecta
SORTIDA
Per a cada instrucció infecta, depenent del stack size, s’escriurà el valor reemplaçat del top o del fons.
Entrada
Sortida
Input
push a push b push c push d top infecta pop pop top push e push f push g infecta top
Output
d d d a g
Input
push j push d push a push e top push a infecta top pop top pop top push k top infecta push k infecta
Output
e j a e j k k j