Elimina punts en una cua de punts X36225


Statement
 

pdf   zip   tar

html

Escriviu el codi d’una funció recursiva elimina_punts que donada una cua de punts c i un punt p, retorni la cua resultant d’eliminar totes les aparicions del punt p de la cua c. Si la cua no conté el punt p, la cua no s’ha de modificar.

queue<Punt> elimina_punts(queue<Punt> c, Punt p); /* Pre: c = C i p = P */ /* Post: retorna la cua C on s'han eliminat totes les aparicions del punt P */

Entrada

Com a entrada hi haurà una cua: el nombre de punts i els punts que la formen. A continuació hi hauran un o més punts addicionals.

Per llegir la cua s’ha utilitzat l’operador >> que es troba definit en el mòdul queueIOpunt.

Sortida

Com a sortida es mostrarà la cua original. A continuació es mostrarà una cua per cada punt d’entrada addicional que serà la cua obtinguda a l’eliminar aquest punt en la cua original.

Per escriure les cues s’ha utilitzat l’operador << que es troba definit en el mòdul queueIOpunt.

Observació

Heu d’enviar la solució comprimida en un fitxer .tar:

tar cvf program.tar cua_elimina.cpp

Observeu que per compilar us donem el Makefile, els mòduls Punt i queueIOpunt, la capçalera del mòdul funcional cua_elimina.hpp i el programa principal program.cpp.

Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte doncs l’enunciat del problema demana que la solució enviada sigui recursiva.

Public test cases
  • Input

    5
    2 1
    6 5
    7 0
    6 5
    5 0
    6 5
    7 0
    7 1
    

    Output

    <(2, 1)|(6, 5)|(7, 0)|(6, 5)|(5, 0)|<
    <(2, 1)|(7, 0)|(5, 0)|<
    <(2, 1)|(6, 5)|(6, 5)|(5, 0)|<
    <(2, 1)|(6, 5)|(7, 0)|(6, 5)|(5, 0)|<
    
  • Information
    Author
    Neus Català - Jordi Esteve
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make