Volem afegir el mètode canvia_lloc(i,j)
a la classe Llista.
Aquest mètode mou l’element de la posició de la llista (el primer element és a la posició ) i l’insereix al davant de l’element a la posició , tot eliminant-lo d’on estava (les posicions es refereixen al lloc que ocupen els elements abans de fer cap operació sobre la llista).
Per exemple, si la nostra llista és ,
.canvia_lloc(0,9)
deixa la llista
així:
si després fem
.canvia_lloc(4,7)
deixa la llista
així:
si després fem
.canvia_lloc(8,2)
deixa la llista
així:
si després fem
.canvia_lloc(3,3)
deixa la llista
així:
si després fem
.canvia_lloc(9,5)
deixa la llista
així:
si després fem
.canvia_lloc(7,8)
deixa la llista
així:
Suposarem que la llista no és buida, i que on és la mida de la llista
Primer hi ha un natural
,
que ens indica el nombre d’elements de la llista. Després apareixen
nombres enters, que formen la llista inicial. Després trobem una
seqüència de parells de naturals
,
,
arguments per a que canvia_lloc(i,j) modifiqui la
llista.
Vegeu els exemples que formen el joc de proves públic.
Dins el codi del mètode demanat NO podeu fer servir
cap mètode de la classe Llista. Heu de manipular
exclusivament les instàncies de _Node que formen la
implementació de la llista.
Heu de baixar-vos el fitxer code.py
(icona de la serp). Aquest fitxer és un programa amb
tot el que cal per executar els jocs de prova públics.
Només falta, clar, el mètode que us demana l’enunciat. Aquest fitxer
l’heu de completar amb el codi que falta, i això, tot,
és el que heu d’enviar al Jutge com a solució.
La representació textual de la llista
l’obtenim fent
print().
Aquesta és la sortida del nostre programa: La llista després de totes
les transformacions indicades per l’entrada.
L’eficiència i la qualitat de la solució es tindran en compte a la correcció manual.
Input
8 949 395 932 860 603 579 307 868 3 5 5 7 2 5 2 3 6 1 3 1
Output
949 -- 603 -- 579 -- 395 -- 860 -- 932 -- 307 -- 868
Input
7 304 66 361 862 2 86 516 3 1 0 6 4 0 6 6 4 5 1 0 4 4 1 3
Output
862 -- 66 -- 86 -- 361 -- 2 -- 304 -- 516
Input
6 713 91 566 394 469 176 4 3 4 1 2 0 4 2 2 3 4 5 4 1
Output
91 -- 566 -- 713 -- 469 -- 394 -- 176