Creació d'una cua circular a partir d'un vector X24856


Statement
 

pdf   zip   tar

html

Donada la classe cua que permet guardar seqüències d’enters amb una cua simplement encadenada, sense fantasma i circular, cal implementar el mètode constructor

cua(const vector<int> &v)

que crea una cua amb els elements del vector v amb el mateix ordre.

Cal enviar a jutge.org només la implementació del mètode constructor. La classe cua té la següent especificació:

#include <vector> using namespace std; typedef unsigned int nat; class cua { // cua simplement encadenada, sense fantasma i circular. private: struct node { int info; // Informació del node node *seg; // Punter al següent element }; node *_ult; // Punter a l’últim element nat _long; // Nombre d’elements node* copiar(node* n, node* fi, node* ini); public: cua(); // Pre: True // Post: El p.i. és una cua buida. cua(const vector<int> &v); // Pre: True // Post: El p.i. conté els elements de v amb el mateix ordre. // Tres grans: constructora per còpia, operador d’assignació i destructora. cua(const cua &c); cua& operator=(const cua &c); ~cua(); void desencuar(); // Pre: True // Post: Treu el primer element de la cua. Llança un error si la cua és buida. const int& primer() const; // Pre: True // Post: Obté el primer element de la cua. Llança un error si la cua és buida. bool es_buida() const; // Pre: True // Post: Consulta si la cua és buida o no. nat longitud() const; // Pre: True // Post: Retorna el nombre d’elements del p.i. static const int CuaBuida = 310; };



Per testejar la solució, jutge.org ja té implementats la resta de mètodes de la classe cua i un programa principal que processa línies d’enters amb els que crear vectors i posteriorment cues.

Entrada

L’entrada conté vàries línies formades per seqüències d’enters. Cadascuna d’elles són els elements que tindrà el vector amb el que es construirà cada cua.

Sortida

Per a cada línia d’entrada, escriu una línia amb el resultat: El nombre d’elements de la cua seguit d’un espai i dels elements de la cua entre claudàtors i separats per espais.

Observació

Cal enviar la solució (el fitxer solution.cpp) comprimida en un fitxer .tar:

tar cvf solution.tar solution.cpp

Només cal enviar la implementació del mètode constructor a partir de vector. Segueix estrictament la definició de la classe de l’enunciat.

Public test cases
  • Input

    3 -6 8 0 4 -2
    5
    
    9 7
    

    Output

    6 [3 -6 8 0 4 -2]
    1 [5]
    0 []
    2 [9 7]
    
  • Information
    Author
    Jordi Esteve
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make