Baixa d'un alumne amb llista simplement encadenada amb fantasma X11268


Statement
 

pdf   zip   tar

html

Donada la classe Llista que permet guardar seqüències de Strings amb una llista simplement encadenada, amb fantasma i no circular, cal implementar el mètode:

void alumne_baixa(string alumne_cercat)

El mètode cerca el alumne amb nom nom_cercat a la llista i l’elimina. Si no es troba cap alumne amb nom nom_cercat, la funció no fa res. Els alumnes es representen amb Strings que son el seu nom. No tenim alumnes repetits a la llista.

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

#include <vector> #include <cstddef> using namespace std; typedef unsigned int nat; class Llista { // Llista simplement encadenada, amb fantasma i no circular. private: struct node { string info; // Informació del node node *seg; // Punter al següent element }; node *_prim; // Punter a l’element fantasma nat _long; // Nombre d’elements public: Llista(); // Pre: True // Post: El p.i. és una llista buida. Llista(const vector<int> &v); // Pre: True // Post: El p.i. conté els elements de v amb el mateix ordre. ~Llista(); // Post: Destrueix els elements del p.i. nat longitud() const; // Pre: True // Post: Retorna el nombre d’elements del p.i. void mostra() const; // Pre: True // Post: Mostra el p.i. pel canal estàndard de sortida. void alumne_baixa(string alumne_cercat); // Pre: True // Post: Es dóna de baixa l’alumne segons l’especificació del problema };



Per testejar la solució, jutge.org ja té implementats la resta de mètodes de la classe Llista i un programa principal que processa línies de Strings amb els que crea la llista i desprès crida el mètode alumne_baixa.

Entrada

L’entrada conté vàries línies formades per Strings. Cadascuna d’elles són els elements que tindrà la llista d’alumnes inicialment. Els elements inicials de la llista venen delimitats per el String "Final". A continuació, la darrera línia es l’alumne cercat.

Sortida

Escriu una línia amb el resultat desprès d’haver donat de baixa l’alumne cercat, amb els noms dels alumnes separats per espais i delimitat per claudàtors tal com fa la funció mostra de la classe Llista.

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 alumne_baixa. Seguiu estrictament la definició de la classe de l’enunciat.

Exemple d’entrada i sortida

Public test cases
  • Input

    Lluis
    Ona
    Marta
    Oscar
    Pere
    Ot
    Final
    Marta
    

    Output

    [Lluis Ona Oscar Pere Ot]
    
  • Input

    Lluis
    Ona
    Marta
    Oscar
    Pere
    Ot
    Final
    Lluis

    Output

    [Ona Marta Oscar Pere Ot]
    
  • Input

    Lluis
    Ona
    Marta
    Oscar
    Pere
    Ot
    Final
    Ot

    Output

    [Lluis Ona Marta Oscar Pere]
    
  • Input

    Lluis
    Ona
    Marta
    Oscar
    Pere
    Ot
    Final
    Paco

    Output

    [Lluis Ona Marta Oscar Pere Ot]
    
  • Input

    Final
    Paco

    Output

    []
    
  • Input

    Lluis
    Ona
    Marta
    Oscar
    Pere
    Ot
    Final
    Ona
    

    Output

    [Lluis Marta Oscar Pere Ot]
    
  • Information
    Author
    Ignasi Gómez Sebastià
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make