Baixa d’un alumne amb llista simplement encadenada circular

Donada la classe LlistaLlista que permet guardar seqüències de StringsStrings amb una llista simplement encadenada circular, cal implementar el mètode:

void alumne_baixa(string alumne_cercat)

El mètode cerca el alumne amb nom nom_cercatnom\_cercat a la llista i l’elimina. Si no es troba cap alumne amb nom nom_cercatnom\_cercat, la funció no fa res. Els alumnes es representen amb StringsStrings 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_baixaalumne\_baixa. La classe LlistaLlista té la següent especificació:

#include <vector>
#include <cstddef>
using namespace std;
typedef unsigned int nat;

class Llista {
  // Llista simplement encadenada, sense fantasma i circular.
  private:
    struct node {
      string info;  // Informació del node
      node *seg; // Punter al següent element
    };
    node *_prim; // Punter al primer element
    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 LlistaLlista i un programa principal que processa línies de StringsStrings amb els que crea la llista i desprès crida el mètode alumne_baixaalumne\_baixa.

Entrada

L’entrada conté vàries línies formades per StringsStrings. Cadascuna d’elles són els elements que tindrà la llista d’alumnes inicialment. Els elements inicials de la llista venen delimitats per el StringString "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ó mostramostra de la classe LlistaLlista.

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

Exemple d’entrada i sortida

2

Exemple d’entrada sample-1

Exemple de sortida sample-1

2

Exemple d’entrada sample-2

Exemple de sortida sample-2

2

Exemple d’entrada sample-3

Exemple de sortida sample-3

2

Exemple d’entrada sample-4

Exemple de sortida sample-4

2

Exemple d’entrada sample-5

Exemple de sortida sample-5

2

Exemple d’entrada sample-6

Exemple de sortida sample-6

Informació del problema

Autoria: Ignasi Gómez Sebastià

Generació: 2026-01-25T21:06:21.943Z

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