Intersección de listas ordenadas

Escribe la siguiente función, que calcula la intersección de dos listas
de personas en orden ascendente de DNI:

    /**
     * @brief Calcula la intersección de dos listas ordenadas.
     * 
     * @param a Lista en orden ascendente de DNI.
     * @param b Lista en orden ascendente de DNI.
     * 
     * @return Lista en orden ascendente de DNI con las personas comunes de a y b.
     */
    list<Persona> interseccio_ordenada(const list<Persona>& a, const list<Persona>& b);

La intersección contiene las personas que aparecen en ambas listas. Dos
personas se consideran iguales si tienen el mismo DNI.

Las listas están ordenadas ascendentemente por DNI (comparación
lexicográfica de strings). La declaración de la clase Persona es la
siguiente:

    class Persona {
     public:
        Persona(string dni, string nom); // Construye una persona
        string dni() const; // devuelve el DNI
        string nom() const; // devuelve el nombre
    };    

Observación

Debes implementar la función interseccio_ordenada en el fichero
interseccio.cc, compilar (está preparado para poder compilar y depurar
con VSCode), y finalmente enviar únicamente el fichero interseccio.cc.

Es necesario que la función sea eficiente y que no visite elementos de
forma innecesaria.

Los ficheros públicos (icono del gatito) contienen:

  ------------ ----------------------------------------------------
  main.cc      el programa principal, con la entrada/salida hecha
  persona.hh   la clase Persona, con los métodos mencionados
  Makefile     para compilar con make cómodamente
  .vscode      carpeta para compilar y depurar con VSCode
  ------------ ----------------------------------------------------

Entrada

La función recibe dos listas de personas no modificables, ordenadas
ascendentemente por DNI. (De la lectura de las listas, que están
separadas por una línea vacía, ya se encarga el programa principal.)

Salida

La función devuelve la lista con las personas comunes de las dos listas,
preservando el orden ascendente original. (De la escritura de la lista
resultante también se encarga el programa principal.)

Información del problema

Autoría: Unknown
Traducción: Pau Fernández

Generación: 2026-02-25T09:47:32.771Z

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