Fusió de llistes ordenades

Fes la funció següent, que fusiona dues llistes de fruites en ordre
descendent:

    /**
     * @brief Fusiona dues llistes ordenades preservant l'ordre.
     * 
     * @param a Llista en ordre descendent.
     * @param b Llista en ordre descendent.
     * 
     * @return Llista en ordre descendent amb els elements d'a i b.
     */
    list<Fruit> fusio_ordenada(const list<Fruit>& a, const list<Fruit>& b);

Una fruita va abans que una altra quan el seu preu és major, i si el
preu és el mateix, quan el nom és lexicogràficament anterior. La
comparació entre dues fruites la implementa ja el mètode is_greater_than
que surt a continuació. La declaració sencera de la classe Fruit és la
següent:

    class Fruit {
     public:
           Fruit(string name, int price); // Construeix una fruita

    string name()  const; // retorna el nom
       int price() const; // retorna el preu

        // Determina si una fruita té un preu major o si amb el mateix 
        // preu, el nom és anterior a `other`
      bool is_greater_than(const Fruit& other) const; 
    };    

Observació

Els fitxers públics (icona del gatet) contenen:

  ---------- ----------------------------------------------------
  main.cc    el programa principal, amb la entrada/sortida feta
  fruit.hh   la classe Fruit, amb els mètodes esmentats
  Makefile   per compilar amb make còmodament
  .vscode    carpeta per compilar i debuggar amb VSCode
  ---------- ----------------------------------------------------

Entrada

La funció rep dues llistes de fruites no modificables, ordenades
descendentment. (De la lectura de les llistes, que estan separades per
una línia buida, ja se n’encarrega el programa principal.)

Sortida

La funció retorna la llista resultant de fusionar les dues llistes
preservant l’ordre original. (De l’escriptura de la llista resultant
també se n’encarrega el programa principal.)

Informació del problema

Autoria: Pau Fernández

Generació: 2026-01-25T12:42:48.160Z

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