直接寻址方式:

class HashTable:
def __init__(self, length):
self.T = [None for i in range(length)] class Data:
def __init__(self, key, satelite_data):
self.key = key
self.satelite_data = satelite_data class Solution:
def DIRECT_ADDRESS_SEARCH(self, T, k):
return T[k] def DIRECT_ADDRESS_INSERT(self, T, x):
T[x.key] = x def DIRECT_ADDRESS_DELETE(self, T, x):
T[x.key] = None

分离连接法:

class HashTable:
def __init__(self, length):
self.T = [None for i in range(length)] class Data:
def __init__(self, key, satelite_data):
self.key = key
self.satelite_data = satelite_data
self.next = None class Solution:
def CHAINED_HASH_INSERT(self, T, x):
'''insert x at the head of list T[h(x.key)]''' x.next = T[x.key].next
T[x.key].next = x def CHAINED_HASH_SEARCH(self, T, k, satelite_data):
'''search for an element with key k in list T[h(k)]''' tmp = T[k]
while tmp.next.satelite_data != satelite_data:
tmp = tmp.next return tmp def CHAINED_HASH_DELETE(self, T, x):
'''delete x from the list T[h(x.key)]''' tmp = T[x.key]
while tmp.next.satelite_data != x.satelite_data:
tmp = tmp.next
tmp.next = tmp.next.next

开放定址法:

class HashTable:
def __init__(self, length):
self.T = [None for i in range(length)] class Solution:
def HASH_INSERT(self, T, k):
i = 0
m = len(T)
while i < m:
j = h(k, i)
if T[j] == None:
T[j] = k
return j
else:
i = i + 1
print "hash table overflow" def HASH_SEARCH(self, T, k):
i = 0
while True:
j = h(k, i)
if T[j] == k:
return j
i = i + 1
if T[j] == None or i == m:
break
return None def h(self, k, i):
'''linear probing''' return (k + i) % m

[算法导论]哈希表 @ Python的更多相关文章

  1. 【算法】哈希表的诞生(Java)

    参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>       ...

  2. 一种适合于MC与SMC算法的哈希表设计

    MC算法与SMC算法中的三角片焊接问题 在之前的关于MC算法与SMC算法的博文中介绍了算法的实现,文章主要围绕算法的核心问题,即三角片如何产生的问题进行了详细的描述.但由于实际应用中需要的等值面Mes ...

  3. Java数据结构和算法之哈希表

    五.哈希表 一般的线性表.树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较.这一类查找方法建立在“比较”的基础上,查找的效率与比较 ...

  4. [算法导论]二叉查找树的实现 @ Python

    <算法导论>第三版的BST(二叉查找树)的实现: class Tree: def __init__(self): self.root = None # Definition for a b ...

  5. 基于visual Studio2013解决算法导论之027hash表

     题目 hash表,用链表来解决冲突问题 解决代码及点评 /* 哈希表 链接法解决冲突问题 */ #include <iostream> using namespace std; s ...

  6. 算法复习——哈希表+折半搜索(poj2549)

    搬讲义~搬讲义~ 折半搜索感觉每次都是打暴力时用的啊2333,主要是用于降次··当复杂度为指数级别时用折半可以减少大量复杂度··其实专门考折半的例题并不多···一般都是中途的一个小优化··· 然后折半 ...

  7. 哈希表(python)

    # -*- coding: utf-8 -*- class Array(object): def __init__(self, size=32, init=None): self._size = si ...

  8. 算法导论 第一章and第二章(python)

    算法导论 第一章 算法     输入--(算法)-->输出   解决的问题     识别DNA(排序,最长公共子序列,) # 确定一部分用法     互联网快速访问索引     电子商务(数值算 ...

  9. python code practice(二):KMP算法、二分搜索的实现、哈希表

    1.替换空格 题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 分析: 将长度为 ...

随机推荐

  1. 团队作业week8

    每个团队编写一个团队项目的功能规格说明书.

  2. 2227 邮票--FUoj(链接表+树的直径)

    http://acm.fzu.edu.cn/problem.php?pid=2227 我感觉这道题可以随意搞 题目大意: 给你的一个图就是一条链,但是不知道起始点和结束点,而且每个点只会访问一次. 因 ...

  3. 1606: [Usaco2008 Dec]Hay For Sale 购买干草

    Description     约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草.  顿因有H(1≤H≤5000)包 ...

  4. 关于把A表中的数据复制到B表中(整理)

    如果A,B两个表中没有重复数据且表结构一样可以直接 insert into B select * from A 如果结构不一样可以 insert into B(字段列表),select 字段列表 fr ...

  5. (状压) Brush (IV) (Light OJ 1018)

    http://www.lightoj.com/volume_showproblem.php?problem=1018   Mubashwir returned home from the contes ...

  6. [Windows-Linux]Windows and Linux 共享文件

    在 windows 上共享一个文件夹 共享操作很简单就不多熬述,不过要注意权限分配问题.我们假定共享了 E:\Develop\Share 这个目录. 我们假设主机局域网的 IP 为 192.168.0 ...

  7. 兼容ie8 rgba()用法 滤镜filter的用法

    原文  http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不 ...

  8. JS,Jquery,ExtJs不同脚本动态创建DOM对象

    好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...

  9. 转:C# DataGridView控件清空数据出错解决方法

    C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...

  10. Color颜色对照表

    Color.AliceBlue 240,248,255 Color.LightSalmon 255,160,122 Color.AntiqueWhite 250,235,215 Color.Light ...