Feu el mètode
void intercala (const Llista<T>&); de la classe
Llista, la implementació de la qual us donem al fitxer
llista.hpp.
Quan cridem aquest mètode: L1.intercala(L2); on
L1, L2 són dues llistes de tipus
Llista<T> doblement enllaçades, la
llista L1 es modifica de manera que té la llista
L2 intercalada (L2 no es modifica). Això vol
dir que la llista L1 comença amb el primer element que ja
tenia, seguit del primer de L2, el segon de
L1, el tercer de L2, ... fins que s’acaben
tots els elements de totes dues llistes.
En general, si:
Després de fer la crida a L1.intercala(L2) tindrem
que
Tingueu en compte que no podeu assumir res sobre les mides de totes dues llistes, únicament que cap d’elles és buida.
El mètode rep una instància de tipus Llista<T> no
buida. El paràmetre implícit també és del mateix tipus i no és buit.
El mètode intercala la llista rebuda com a paràmetre al paràmetre implícit.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar llista.cpp
Observeu que per compilar us donem el Makefile, la
capçalera del mòdul funcional pila.hpp, que conté tota la
implementació de tots els mètodes, llevat del que heu d’implementar
vosaltres, i el programa principal program.cpp.
La solució es compilarà perquè el fitxer llista.hpp (que
no heu de modificar) té la següent línia:
include "llista.cpp"
Input
6 1 3 5 7 9 11 10 2 4 6 8 10 12 14 16 18 20
Output
1 3 5 7 9 11 2 4 6 8 10 12 14 16 18 20 1 2 3 4 5 6 7 8 9 10 11 12 14 16 18 20
Input
4 4 2 5 3 2 8 10
Output
4 2 5 3 8 10 4 8 2 10 5 3