def __init__(self): self.__elementos = ListaLigada() self.__numero_categorias = 10 self.__tamanho = 0 for i in range(self.__numero_categorias): self.__elementos.inserir(ListaLigada())
class Mapa: def __init__(self): self.__elementos = ListaLigada() self.__numero_categorias = 10 for i in range(self.__numero_categorias): self.__elementos.inserir(ListaLigada()) def gerar_numero_espalhamento(self, chave): return hash(chave) % self.__numero_categorias def contem_chave(self, chave): numero_espalhamento = self.gerar_numero_espalhamento(chave) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) for i in range(categoria.tamanho): associacao = categoria.recuperar_elemento_no(i) if associacao.chave == chave: return True return False def remover(self, chave): numero_espalhamento = self.gerar_numero_espalhamento(chave) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) for i in range(categoria.tamanho): associacao = categoria.recuperar_elemento_no(i) if associacao.chave == chave: categoria.remover_elemento(associacao) return True return False def adicionar(self, chave, valor): if self.contem_chave(chave): self.remover(chave) numero_espalhamento = self.gerar_numero_espalhamento(chave) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) categoria.inserir(Associacao(chave, valor)) def recuperar(self, chave): numero_espalhamento = self.gerar_numero_espalhamento(chave) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) for i in range(categoria.tamanho): associacao = categoria.recuperar_elemento_no(i) if associacao.chave == chave: return associacao.valor return False def __str__(self): temp = self.__elementos.__str__() return temp
class Fila: def __init__(self): self.__elementos = ListaLigada() def enfileirar(self, elemento): self.__elementos.inserir(elemento) def esta_vazia(self): return self.__elementos.esta_vazia() def desenfileirar(self): if self.esta_vazia(): return None resultado = self.__elementos.recuperar_elemento_no(0) self.__elementos.remover_posicao(0) return resultado def __str__(self): temp = self.__elementos.__str__() return temp
class TabelaEspalhamento: def __init__(self): self.__elementos = ListaLigada() self.__numero_categorias = 10 self.__tamanho = 0 for i in range(self.__numero_categorias): self.__elementos.inserir(ListaLigada()) def __gerar_espalhamento(self, elemento): return hash(elemento) % self.__numero_categorias def inserir(self, elemento): if self.contem(elemento): return False numero_espalhamento = self.__gerar_espalhamento(elemento) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) categoria.inserir(elemento) self.__tamanho += 1 return True def remover(self, elemento): numero_espalhamento = self.__gerar_espalhamento(elemento) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) categoria.remover_elemento(elemento) self.__tamanho -= 1 def contem(self, elemento): numero_espalhamento = self.__gerar_espalhamento(elemento) categoria = self.__elementos.recuperar_elemento_no(numero_espalhamento) return categoria.contem(elemento) @property def tamanho(self): return self.__tamanho def __str__(self): return self.__elementos.__str__()
vetor_teste.inserir_elemento_indice(3, 2) vetor_teste.inserir_elemento_indice(4, 2) """ print(vetor_teste.listar_elemento(0)) print(vetor_teste.listar_elemento(1)) print(vetor_teste.listar_elemento(2)) """ print(vetor_teste.listar_elemento(0)) print(vetor_teste.listar_elemento(1)) print(vetor_teste.listar_elemento(2)) print(vetor_teste.listar_elemento(3)) print(vetor_teste.indice(3)) print(vetor_teste.indice(9)) elif menu == 2: lista_teste = ListaLigada() lista_teste.inserir(1) lista_teste.inserir(4) lista_teste.inserir(5) lista_teste.inserir_posicao(2, 22) print(lista_teste) print(lista_teste.contem(5)) print(lista_teste.indice(5)) elif menu == 3: lista_teste = ListaDuplamenteLigada() lista_teste.inserir(1) lista_teste.inserir(4) lista_teste.inserir(5) lista_teste.inserir_posicao(2, 22) print(lista_teste)
def __init__(self): self.__elementos = ListaLigada()