Eliminació dels elements de les posicions parells d’una llista simplement encadenada

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

void eliminaposicionsparells()

que elimina els elements de les posicions parells del paràmetre implícit.

Cal enviar a jutge.org només la implementació del mètode eliminaposicionsparellseliminaposicionsparells. 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 no circular.
  private:
    struct node {
      int 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 eliminaposicionsparells();
    // Pre: True
    // Post: S'han eliminat els elements del p.i. de les posicions parells
    //       Exemple: [2 5 3 8 1] quedaria [2 3 1]
};

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 d’enters amb els que crea llistes i desprès crida el mètode eliminaposicionsparellseliminaposicionsparells.

Entrada

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

Sortida

Per a cada línia d’entrada, escriu una línia amb el resultat desprès d’haver eliminat els elements de les posicions parells de la llista: El nombre d’elements de la llista seguit d’un espai i dels elements de la llista 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 eliminaposicionsparellseliminaposicionsparells. Seguiu estrictament la definició de la classe de l’enunciat.

Informació del problema

Autoria: Jordi Esteve

Generació: 2026-01-25T21:13:00.029Z

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