Skip to content

Instantly share code, notes, and snippets.

Last active March 6, 2023 18:05
What would you like to do?
Hash Table in Python - Tabela Hash em Python usando classe
# Tabela Hash sem tratamento de colisões
# Criado por: profa. Divani Barbosa Gavinier
# Curriculo Lattes:
class Hash:
def __init__(self,tam): = {}
self.tam_max = tam
def funcaohash(self, chave):
v = int(chave)
return v%self.tam_max
def cheia(self):
return len( == self.tam_max
def imprime(self):
for i in
print("Hash[%d] = " %i, end="")
print ([i])
def apaga(self, chave):
pos = self.busca(chave)
if pos != -1:
print("-> Dado da posicao %d apagado" %pos)
print("Item nao encontrado")
def busca(self, chave):
pos = self.funcaohash(chave)
if == None: # se esta posição não existe
return -1 #saida imediata
if[pos] == chave:
return pos
return -1
def insere(self, item):
if self.cheia():
print("-> ATENÇÃO Tabela Hash CHEIA")
pos = self.funcaohash(item)
if == None: # se posicao vazia[pos] = item
print("-> Inserido HASH[%d]" %pos)
else: # se posicao ocupada
print("-> Ocorreu uma colisao na posicao %d" %pos)
# fim Classe Hashlinear
tamanhoHash = 7
tab = Hash(tamanhoHash)
print(" Tabela HASH Sem Colisões (%d itens) " %tamanhoHash)
for i in range (0,tamanhoHash,1):
print("\nInserindo elemento %d" %(i + 1));
item = input(" - Forneca valor numerico inteiro: ")
item = input("\n - Forneca valor numerico inteiro para buscar: ")
pos = tab.busca(item)
if pos == -1:
print("Item nao encontrado")
print("Item encontrado na posicao: ", pos)
item = input("\n - Forneca valor numerico inteiro para apagar: ")
print("\nImprimindo conteudo")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment