class Elemento:
def __init__(self, val = None, prox = None):
self.val = val
self.prox = prox
class Lista:
val = None
def __init__(self, lp):
for v in lp:
self.append(v)
def __len__(self):
i = 0
atual = self.val
while atual != None:
i = i + 1
atual = atual.prox
return i
def append(self, v):
elem = Elemento(v)
if self.val == None:
self.val = elem
return
atual = self.val
while atual.prox != None:
atual = atual.prox
atual.prox = elem
def get(self, i):
e = self.elem(i)
return e.val
def elem(self, i):
atual = self.val
while i > 0:
i = i - 1
atual = atual.prox
return atual
def set(self, i, v):
elem = self.elem(i)
elem.val = v
def __repr__(self):
res = "["
atual = self.val
while atual != None:
res = res + (atual.val).__repr__() + ", "
atual = atual.prox
res = res + "]"
return res
def __getitem__(self, i):
return self.get(i)
def __setitem__(self, i, v):
self.set(i, v)
def __mul__(self, x):
lr = Lista([])
for i in range(x):
for j in range(len(self)):
lr.append(self[j])
return lr