Toteuta luokka QuickList
, jossa on seuraavat metodit:
move(k)
: siirrä listank
ensimmäistä alkiota listan loppuunget(i)
: ilmoita indeksissäi
oleva alkio
Listan sisältö annetaan konstruktorissa, ja kummankin metodin tulee toimia ajassa O(1).
Toteuta tiedostoon quicklist.py
luokka QuickList
seuraavan mallin mukaisesti.
class QuickList: def __init__(self, t): # TODO def move(self, k): # TODO def get(self, i): # TODO if __name__ == "__main__": q = QuickList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(q.get(4)) # 5 q.move(3) print(q.get(4)) # 8 q.move(3) print(q.get(4)) # 1 q.move(10) print(q.get(4)) # 1 q.move(7) q.move(5) print(q.get(0)) # 9
Selitys Listan sisältö käyttäytyy koodipohjassa näin:
- [1,2,3,4,5,6,7,8,9,10]
move(3)
\rightarrow [4,5,6,7,8,9,10,1,2,3]move(3)
\rightarrow [7,8,9,10,1,2,3,4,5,6]move(10)
\rightarrow [7,8,9,10,1,2,3,4,5,6]move(7)
\rightarrow [4,5,6,7,8,9,10,1,2,3]move(5)
\rightarrow [9,10,1,2,3,4,5,6,7,8]