def __init__(self):
        self.__elementos = ListaLigada()
        self.__numero_categorias = 10
        self.__tamanho = 0

        for i in range(self.__numero_categorias):
            self.__elementos.inserir(ListaLigada())
Example #2
0
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__()
Example #5
0
    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()