設計有setAll功能的雜湊表

2021-09-26 04:59:30 字數 1255 閱讀 1958

題目

雜湊表常見的三個操作是put、get和containskey,而且這三個操作的時間複雜度為o(1)。現在想加乙個setall功能,就是把所有的記錄的value值都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put、get、containskey和setall四個操作的時間複雜度都為o(1)。

基本思路

加入時間戳。

1、把每乙個記錄都加上乙個時間,標記每條記錄是合適建立的

2、設定乙個setall記錄也加上乙個時間,標記setall記錄何時建立

3、查詢記錄時,如果某條記錄的時間早於setall記錄的時間,說明setall是最新資料,返回setall記錄的值。如果某條記錄的時間晚於setall記錄的時間,說明記錄的值是最新資料,返回該條記錄的值

clas myvalue:

def __init__(self,value,time):

self.value = value

self.time = time

def getvalue(self):

return self.value

def gettime(self):

return self.time

class myhashmap:

def __init__(self):

self.map = {}

self.time = {}

self.setall = myvalue(none,-1)

def containkey(self,key):

return key in self.map

def put(self,key,value):

self.map[key] = myvalue(value,self.time)

self.time +=1

def setall(self,value):

self.setall = myvalue(value,self.time)

self.time +=1

def get(self,key):

if self.containskey(key):

if self.map[key].gettime() < self.setall.gettime():

return self.setall.getvalue()

else:

return self.map[key].getvalue()

else:

return none

設計有setAll功能的雜湊表

設計有setall功能的雜湊表 雜湊表常見的三個操作時put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有記錄value都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall...

其他題目 設計有setAll功能的雜湊表

題目 雜湊表常見的三個操作是put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有的記錄的value值都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall四個操作的時間複雜度...

雜湊表 設計雜湊對映

不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 示例 myhashmap hashmap new myhashmap hashmap.put 1,1 hashmap.put 2,2 hashmap.get 1 返回 1 hashmap.get 3 返回 1 未找到 h...