Creació d’una cua circular a partir d’un vector

Donada la classe cuacua 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 vv amb el mateix ordre.

Cal enviar a jutge.org només la implementació del mètode constructor. La classe cuacua 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 cuacua 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.cppsolution.cpp) comprimida en un fitxer .tar.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.

Informació del problema

Autoria: Jordi Esteve

Generació: 2026-01-25T21:05:04.565Z

© Jutge.org, 2006–2026.
https://jutge.org