雜湊表(hash table,也叫雜湊表),是根據關鍵碼值(key value)而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。
# filename : hashtable.py
class hashtable():
"""docstring for hasht"""
# 回頭再加注釋吧
def __init__(self,size):
self.table = [none] * size
self.size=size
#插入元素,使用鏈式方法
def insert(self,value):
index = value % self.size # 雜湊函式在此
#print('value:',value,' self.table[index]:',self.table[index])
if value == self.table[index]:
return true
if isinstance(self.table[index],int):
self.table[index] = [self.table[index]]
elif isinstance(self.table[index],list):
if value in self.table[index]:
return true
else:
self.table[index] = value
# 刪除表內元素
def delete(self,value):
index = value % self.size
if self.table[index] == none:
print('delete error')
return false
elif isinstance(self.table[index],int):
if self.table[index] == value:
self.table[index] = none
else:
print('delete error')
return false
elif isinstance(self.table[index],list):
if value in self.table[index]:
value_index = self.table[index].index(value)
self.table[index][value_index] = none
else:
print('delete error')
return false
#搜尋該元素是否存在
def search(self,value):
index = value % self.size
if self.table[index] == none:
return false
elif isinstance(self.table[index],int):
if self.table[index] == value:
return true
else:
return false
elif isinstance(self.table[index],list):
if value in self.table[index]:
return true
else:
return false
self.size = int(input())
table = hashtable(self.size)
inputdata = input().split()
data = list(map(int,inputdata))
for eachdata in data:
table.insert(eachdata)
#print('table element:',table.table)
addmore = int(input())
for addelement in range(0,addmore):
table.insert(int(input()))
#print('table element:',table.table)
deletesome = int(input())
for deleteit in range(0,deletesome):
table.delete(int(input()))
#print('table element:',table.table)
searchit = int(input())
for searchit in range(0,searchit):
print(table.search(int(input())))
動態建立順序表,並進行插入刪除操作
程式 include stdio.h include include stdlib.h using namespace std define maxsize 10 typedef structsqlist void initiallist sqlist l 動態的建立乙個順序表 void inser...
資料結構 雜湊表
1.雜湊表的定義 元素的儲存位置和它的關鍵碼之間建立乙個確定的對應關係h,使得每個關鍵碼key和唯一的儲存位置h key 相對應。在查詢時,根據這個確定的對應關係找到給定值k的對映h k 若查詢集合中存在這個記錄,則必定在h k 的位置上,這種查詢技術稱為雜湊技術。採用雜湊技術將記錄儲存在一塊連續的...
資料結構 雜湊表
雜湊表的定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把 關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的 速度。這個對映函式叫做雜湊函式,存放 記錄的陣列叫做雜湊表。雜湊函式的析構方法 餘數法 取關鍵字被某個不大於雜...