infecta X18671


Statement
 

pdf   zip   tar

html

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

Public test cases
  • 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
    
  • Information
    Author
    STUDENTS PRO1
    Language
    Catalan
    Official solutions
    Make
    User solutions