← Back tabelaHash.py | tabelaHash.py.TabelaHashSondagemLinear._procurar_posicao -- 3
Source
def _procurar_posicao(self, chave, para_insercao=False):
    """
        Procura a posição de uma chave na tabela.

        Se para_insercao=False:
            - retorna o Ã\xadndice da chave, se ela existir;
            - retorna None, se ela não existir.

        Se para_insercao=True:
            - retorna o Ã\xadndice da própria chave, se ela já existir;
            - retorna a melhor posição livre para inserir;
            - retorna None, se não houver posição disponÃ\xadvel.

        A sondagem é linear:
            pos, pos+1, pos+2, ... (com retorno ao inÃ\xadcio da tabela)
        """
    posicao_inicial = self.funcao_hash(chave)
    posicao = posicao_inicial
    primeira_removida = None
    passos = 0
    while passos < self.capacidade:
        entrada = self.tabela[posicao]
        if entrada is None:
            if para_insercao:
                if primeira_removida is not None:
                    return primeira_removida
                return posicao
            else:
                return None
        elif entrada is REMOVIDO:
            if para_insercao and primeira_removida is None:
                primeira_removida = posicao
        else:
            chave_guardada, _ = entrada
            if chave_guardada == chave:
                return posicao
        posicao = (posicao + 1) % self.capacidade
        passos += 1
    if para_insercao and primeira_removida is not None:
        return primeira_removida
    return None
CFG
Zoom + Zoom - Reset
Blocks
Covered: 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 22, 23, 25, 26, 29, 30, 31, 32, 35, 37, 39, 40, 41
Missed:
Edges
Covered: (0, 1), (5, 2), (1, 5), (2, 6), (10, 7), (10, 8), (6, 10), (14, 11), (14, 12), (7, 14), (18, 15), (11, 18), (25, 22), (25, 23), (8, 25), (29, 26), (30, 29), (22, 30), (23, 31), (35, 32), (31, 35), (9, 1), (40, 37), (41, 40), (4, 41), (5, 4), (18, 17), (26, 9), (29, 9), (30, 9), (35, 9), (40, 39), (41, 39)
Missed:
Essential arcs
Covered: (14, 12), (18, 15), (18, 17), (29, 26), (29, 9), (30, 9), (35, 32), (35, 9), (40, 37), (40, 39), (41, 39)
Missed:
Edge Pairs
Covered: (0, 1, 5), (1, 5, 2), (1, 5, 4), (10, 7, 14), (10, 8, 25), (11, 18, 15), (11, 18, 17), (14, 11, 18), (2, 6, 10), (22, 30, 29), (22, 30, 9), (23, 31, 35), (25, 22, 30), (25, 23, 31), (26, 9, 1), (29, 26, 9), (29, 9, 1), (30, 29, 26), (30, 29, 9), (30, 9, 1), (31, 35, 32), (31, 35, 9), (35, 9, 1), (4, 41, 39), (4, 41, 40), (41, 40, 37), (41, 40, 39), (5, 2, 6), (5, 4, 41), (6, 10, 7), (6, 10, 8), (7, 14, 11), (7, 14, 12), (8, 25, 22), (8, 25, 23), (9, 1, 5)
Missed:
Prime Paths
Covered: (0, 1, 5, 2, 6, 10, 7, 14, 11, 18, 17), (0, 1, 5, 2, 6, 10, 7, 14, 12), (0, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 26, 9), (0, 1, 5, 2, 6, 10, 8, 25, 22, 30, 9), (0, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 32), (0, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 9), (1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 26, 9, 1), (1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 9, 1), (1, 5, 2, 6, 10, 8, 25, 22, 30, 9, 1), (1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 9, 1), (10, 8, 25, 22, 30, 29, 26, 9, 1, 5, 2, 6, 10), (10, 8, 25, 22, 30, 29, 9, 1, 5, 2, 6, 10), (10, 8, 25, 22, 30, 9, 1, 5, 2, 6, 10), (10, 8, 25, 23, 31, 35, 9, 1, 5, 2, 6, 10), (2, 6, 10, 8, 25, 22, 30, 29, 26, 9, 1, 5, 2), (2, 6, 10, 8, 25, 22, 30, 29, 9, 1, 5, 2), (2, 6, 10, 8, 25, 22, 30, 9, 1, 5, 2), (2, 6, 10, 8, 25, 23, 31, 35, 9, 1, 5, 2), (22, 30, 29, 26, 9, 1, 5, 2, 6, 10, 8, 25, 22), (22, 30, 29, 9, 1, 5, 2, 6, 10, 8, 25, 22), (22, 30, 9, 1, 5, 2, 6, 10, 8, 25, 22), (23, 31, 35, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30), (23, 31, 35, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29), (23, 31, 35, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 26), (23, 31, 35, 9, 1, 5, 2, 6, 10, 8, 25, 23), (25, 22, 30, 29, 26, 9, 1, 5, 2, 6, 10, 8, 25), (25, 22, 30, 29, 9, 1, 5, 2, 6, 10, 8, 25), (25, 22, 30, 9, 1, 5, 2, 6, 10, 8, 25), (25, 23, 31, 35, 9, 1, 5, 2, 6, 10, 8, 25), (29, 26, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29), (29, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29), (30, 29, 26, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30), (30, 29, 26, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35), (30, 29, 26, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 32), (30, 29, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30), (30, 29, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35), (30, 29, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 32), (30, 9, 1, 5, 2, 6, 10, 8, 25, 22, 30), (30, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35), (30, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 32), (31, 35, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31), (35, 9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35), (5, 2, 6, 10, 8, 25, 22, 30, 29, 26, 9, 1, 5), (5, 2, 6, 10, 8, 25, 22, 30, 29, 9, 1, 5), (5, 2, 6, 10, 8, 25, 22, 30, 9, 1, 5), (5, 2, 6, 10, 8, 25, 23, 31, 35, 9, 1, 5), (6, 10, 8, 25, 22, 30, 29, 26, 9, 1, 5, 2, 6), (6, 10, 8, 25, 22, 30, 29, 26, 9, 1, 5, 4, 41, 40, 37), (6, 10, 8, 25, 22, 30, 29, 9, 1, 5, 2, 6), (6, 10, 8, 25, 22, 30, 29, 9, 1, 5, 4, 41, 40, 37), (6, 10, 8, 25, 22, 30, 9, 1, 5, 2, 6), (6, 10, 8, 25, 22, 30, 9, 1, 5, 4, 41, 39), (6, 10, 8, 25, 23, 31, 35, 9, 1, 5, 2, 6), (6, 10, 8, 25, 23, 31, 35, 9, 1, 5, 4, 41, 39), (6, 10, 8, 25, 23, 31, 35, 9, 1, 5, 4, 41, 40, 37), (6, 10, 8, 25, 23, 31, 35, 9, 1, 5, 4, 41, 40, 39), (8, 25, 22, 30, 29, 26, 9, 1, 5, 2, 6, 10, 7, 14, 11, 18, 15), (8, 25, 22, 30, 29, 26, 9, 1, 5, 2, 6, 10, 8), (8, 25, 22, 30, 29, 9, 1, 5, 2, 6, 10, 7, 14, 11, 18, 15), (8, 25, 22, 30, 29, 9, 1, 5, 2, 6, 10, 8), (8, 25, 22, 30, 9, 1, 5, 2, 6, 10, 7, 14, 12), (8, 25, 22, 30, 9, 1, 5, 2, 6, 10, 8), (8, 25, 23, 31, 35, 9, 1, 5, 2, 6, 10, 7, 14, 11, 18, 15), (8, 25, 23, 31, 35, 9, 1, 5, 2, 6, 10, 7, 14, 11, 18, 17), (8, 25, 23, 31, 35, 9, 1, 5, 2, 6, 10, 7, 14, 12), (8, 25, 23, 31, 35, 9, 1, 5, 2, 6, 10, 8), (9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 26, 9), (9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 29, 9), (9, 1, 5, 2, 6, 10, 8, 25, 22, 30, 9), (9, 1, 5, 2, 6, 10, 8, 25, 23, 31, 35, 9)
Missed: