Toteuta luokka QuickList, jossa on seuraavat metodit:
move(k): siirrä listankensimmäistä alkiota listan loppuunget(i): ilmoita indeksissäioleva 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]
