Estou aproveitando o tempo livre ocasionado pelas férias na Unip para estudar um pouco mais alguns conceitos de computação. Um deles é a lista encadeada. Para quem não sabe o que é, lista encadeada é uma espécie de array, porém com a possiblidade de se adaptar ao tamanho correto automaticamente. Quem tem o interesse de aprender sobre ela recomendo esse post
Falta organizar várias coisas no código, mas o básico é isso. Neste exemplo uso a posição zero apenas para marcar a variável na memória do computador:
class Lista(): __valor = None __proximo = None def __init__(self,valor = None): self.__valor = valor def getProximo(self): return self.__proximo def setProximo(self,pro): self.__proximo = pro def getValor(self): return self.__valor def adicionar(self,valor): temporario = None if self.__proximo == None: self.__proximo = Lista(valor) return None proximo = self.__proximo temporario = proximo while not proximo == None: proximo = proximo.getProximo() if not proximo == None: temporario = proximo temporario.setProximo(Lista(valor)) #proximo.setProximo(ok) def posicao(self,pos): proximo = self.__proximo if pos == 0: return self.getValor() for i in range(0,pos-1): proximo = proximo.getProximo() return proximo.getValor() def remover(self,pos): temporario = None proximo = self.__proximo j=0 for i in range(0,pos-2): temporario = proximo if i == pos - 2: break proximo = proximo.getProximo() if proximo.getProximo().getProximo() == None: proximo.setProximo(None) else: proximo.setProximo(proximo.getProximo().getProximo())