python实现哈希表
生活随笔
收集整理的這篇文章主要介紹了
python实现哈希表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# python 實現哈希表class HashTable:"""哈希函數的構造解決沖突"""def __init__(self, source):self.source = sourceself._index = []self._val = []self.table = []self._mod = 13def Output(self):print(self._index)print(self._val)def _create_table(self):"""初始化哈希表哈希表長度最短為取余因子_mod,一般為源數據長度"""if len(self.source) < self._mod:length = self._modelse:length = len(self.source)self._index = [i for i in range(length)]self._val = [None for i in range(length)]def _func_hash(self):"""構建哈希函數"""for sour in self.source:remainder = sour % self._modif self._val[remainder] is None:self._val[remainder] = sourelse:# 處理沖突rem = remainderwhile self._val[rem] is not None:if(rem + 1 >= len(self._val)):rem = -1rem += 1self._val[rem] = sourself.table = list(zip(self._index, self._val))def get(self, num):"""查找"""rem = num % self._modif self._val[rem] != num:while True:if(rem + 1 >= len(self._val)):rem = 0if self._val[rem] == num:breakrem += 1return remdef run(self):self._create_table()self._func_hash()self.Output()if __name__ == '__main__':test = [12, 15, 17, 21, 22, 25, 13, 0]h = HashTable(test)h.run()h.get(12)
只是為了鞏固哈希表實現的原理,代碼本身沒什么用
總結
以上是生活随笔為你收集整理的python实现哈希表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 离散数学知识点及错题集合 第七章
- 下一篇: 2019南昌市计算机教师招聘,南昌民德学