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
};
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 |
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.)
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.)
Autoría: Unknown
Traducción: Pau Fernández
Generación: 2026-02-25T09:47:32.771Z
© Jutge.org, 2006–2026.
https://jutge.org