cuarevambimpdob: Mètode per a moure una cua de manera inversa i doblar el valor de les posicions senars X96956


Statement
 

pdf   zip   tar

html

Implementeu un nou mètode de la classe Queue que mogui una cua de manera inversa i doblar el valor de les posicions senars. En cas que la cua no tingui cap element, la funció no farà res. D’entre els fitxers que s’adjunten en aquest exercici, trobareu cuarevambimpdob.hpp, a on hi ha una implementació de la classe genèrica Queue. En primer lloc, haureu de fer:

cp cuarevambimpdob.hpp queue.hpp

A continuació, haureu de buscar dins queue.hpp la part:

  // Pre: Una cua amb el seu contingut ordenat [e1, e2,...en]
  // Post: torna la cua "reversada" amb els nombres senars multiplicat per 2 "doblats" [2e1, e2,...en]
  //Tot aixo començant la funció agafant el 1er element com un 1
  // Descomenteu les següents dues linies i implementeu la funció:
  //void cuarevambimpdob() {
  //}

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, excepte si, per algun motiu, considereu que necessiteu afegir algun mètode auxiliar a la part privada. La idea és que la vostra implementació treballi amb punters. De fet, molt possiblement, una implementació basada en usar front, pop i push serà massa lenta i no superarà els jocs de proves privats.

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 queue.hpp

Entrada

a entrada del programa és una seqüència d’instruccions del següent tipus que s’aniran aplicant sobre una cua d’strings que se suposa inicialment buida:

push x (x és string)
pop
front
size
cuarevambimpdob

Se suposa que la seqüencia d’entrada serà correcta (sense pop ni front sobre cua buida). El programa principal que us oferim ja s’encarrega de llegir aquestes entrades i fer les crides als corresponents m‘etodes de la classe cua. Només cal que implementeu el mètode abans esmentat.

Sortida

Per a cada instrucció front, s’escriurà el front actual de la cua. Per a cada instrucció size, s’escriurà la mida de la cua. El programa que us oferim ja fa això. Només cal que implementeu el mètode abans esmentat.

Public test cases
  • Input

    push 65
    size
    cuarevambimpdob
    size
    push 43
    front
    cuarevambimpdob
    front
    size
    pop
    push 2
    front
    pop
    size
    front

    Output

    1
    1
    130
    43
    2
    260
    1
    2
    
  • Input

    size
    cuarevambimpdob
    size
    push 3
    front
    cuarevambimpdob
    front
    size
    pop
    push 25
    front
    size
    cuarevambimpdob
    front
    size
    pop
    front
    push 87
    front
    push 14
    front
    cuarevambimpdob
    front
    push 23
    front
    size
    cuarevambimpdob
    front
    size
    pop
    front
    pop
    front
    pop
    size

    Output

    0
    0
    3
    6
    1
    25
    1
    50
    1
    
  • Information
    Author
    Marti Velasco Molas & Jordi Moreno López
    Language
    Catalan
    Official solutions
    Make
    User solutions