哈希表的简介
哈希表的实现
class Link_list:
class Node:
def __init__(self,item=None):
self.item=item
self.next=None
def __init__(self,iterable=None):
self.head=None
slef.tail=None
if iterable:
for obj in iterable:
self.append(obj)
def append(self,obj):
s=Link_list.Node(obj)
if not self.head:
self.head=s
self.tail=s
else:
self.tail.next=s
self.tail=s
def find(self,obj):
for i in self:
if i==obj:
return True
else:
return False
class Linklistiterator:
def __init__(self,node):
self.node=node
def __next__(self):
if self.node:
curnode=self.node
self.node=curnode.next
return curnode.item
else:
raise StopIteration
def __iter__(self):
return self.Linklistiterator(self.head)
def __repr__(self):
return '<<'+','.join(map(str,self))+'>>'
class Hashtable:
def __init__(self,size=101):
self.size=size
self.T=[Listlist() for i in range(self.size)]
def h(self,k):
return k%self.size
def insert(self,k):
i=self.h(k)
if self.T[i].find(k):
print('已存在')
else:
self.T[i].append(k)
ht=Hashtable()
ht.insert(1)
ht.insert(102)
ht.insert(5)
print(','.join(str,ht.T))