Donada la classe Llista que permet guardar seqüències d’enters amb una llista simplement encadenada, sense fantasma i circular, cal implementar el mètode
que duplica tots els elements del paràmetre implícit obtenint una llista capicua.
Per exemple, si inicialment tenim aquesta llista:
[2 5 3 8 4]
després de cridar a duplica_capicua, la llista quedarà així:
[2 5 3 8 4 4 8 3 5 2]
Cal enviar a jutge.org la següent especificació de la classe Llista i la implementació del mètode dins del mateix fitxer. Al principi de cada mètode implementat, dins d’un comentari, cal indicar el cost temporal amb el raonament corresponent, incloent l’equació de la recurrència si fos necessari.
Per testejar la solució, jutge.org ja té implementats la resta de mètodes de la classe Llista i un programa principal que processa línies d’enters amb els que crea llistes i després crida el mètode duplica_capicua.
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 duplicat els elements deixant-los capicua: El nombre d’elements de la llista seguit d’un espai, els elements de la llista entre claudàtors i separats per espais.
Observació
Només cal enviar la classe requerida i la implementació del mètode duplica_capicua. Pots ampliar la classe amb mètodes privats. Segueix estrictament la definició de la classe de l’enunciat. No es poden usar estructures de dades auxiliars com els vectors o arrays.
Al principi de cada mètode implementat i dins d’un comentari cal indicar el cost temporal amb el raonament corresponent, incloent l’equació de la recurrència si fos necessari.
Input
Output
0 []
Input
2 -1
Output
2 [2 2] 2 [-1 -1]
Input
2 -5 -1 4
Output
4 [2 -5 -5 2] 4 [-1 4 4 -1]
Input
2 -5 3 1 6 -9
Output
6 [2 -5 3 3 -5 2] 6 [1 6 -9 -9 6 1]
Input
2 5 3 8 4 3 -6 8 0 4 3
Output
10 [2 5 3 8 4 4 8 3 5 2] 12 [3 -6 8 0 4 3 3 4 0 8 -6 3]