資料結構 建立雜湊表並進行插入刪除查詢元素操作

2021-09-27 10:45:09 字數 2483 閱讀 7409

雜湊表(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 而直接進行訪問的資料結構。也就是說,它通過把 關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的 速度。這個對映函式叫做雜湊函式,存放 記錄的陣列叫做雜湊表。雜湊函式的析構方法 餘數法 取關鍵字被某個不大於雜...