@[toc] 数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 1、数组 数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进 ...
分类:
其他好文 时间:
2018-10-23 14:59:20
阅读次数:
122
重写object的成员: 重写HashCode(): 散列码HashCode的作用是生成与对象值对应的数字,从而高效地平衡散列表。要获得良好的GetHashCode()实现,应按照以下实现原则: 必须: 相等的对象必然有相等的散列码。 在特定对象的生存期内,GetHashCode()始终返回相同的值 ...
YAML简介:*YAML是一种用来表达资料序列的格式。YAML是YAMLAin‘tMarkupLanaguage的缩写,即YAML不是XML。*特点:1.具有很好的可续性,易于实现;2.表达能力强,扩展性好;3.和脚本语言的交互性好;4.有一个一致的信息模型;5.可以基于流来处理;YAML语法:*YAML的语法和其他语言类似,也可以表达散列表、标量等数据结构。*YAML结构通过空格来展示;序列里的
分类:
其他好文 时间:
2018-10-21 11:21:05
阅读次数:
131
? 书中第三章部分程序,加上自己补充的代码,包括散列表、线性探查表 ● 散列表 ● 线性探查表 ...
分类:
编程语言 时间:
2018-10-16 01:47:24
阅读次数:
163
一个字符串的hash值: ?现在我们希望找到一个hash函数,使得每一个字符串都能够映射到一个整数上 ?比如hash[i]=(hash[i-1]*p+idx(s[i]))%mod ?字符串:abc,bbc,aba,aadaabac ?字符串下标从0开始 ?先把a映射为1,b映射为2,c->3,d-> ...
分类:
其他好文 时间:
2018-10-04 17:26:05
阅读次数:
145
处理冲突的方法可以分为两大类:开放地址法和链地址法 开发地址法 开放地址法的基本思想是:把记录都存储在散列表数组中,当某一记录关键字key的初始散列地址H0=H(key)发生冲突时,以H0为基础,采取合适方法计算得到另一个地址H1,如果H1仍然发生冲突 ,以H1为基础再求下一个地址H2,若H2仍然冲 ...
分类:
其他好文 时间:
2018-10-04 08:45:07
阅读次数:
248
? 除留余数法设计哈希表 : 由该式子得到value在哈希表中的存储位置:index = value % p;这里为了尽量的减少冲突,而且让value在哈希表中尽可能的均匀分布,p的选择就至关重要了。而合理选择p的经验是:若散列表表长为m,通常p为小于或等于表长(最好接近m)的最小质数或不包含小于2 ...
分类:
其他好文 时间:
2018-10-02 22:12:02
阅读次数:
175
介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石。模块的命名空间、实例的属性和函数的关键字参数中都可以看到字典的身影。跟它有关的内置函数都在 __builtins__.__dict__模块中。 正是因为字典至关重要,Python 对它的实现做了高度优化,而散列表则是字典 ...
分类:
编程语言 时间:
2018-09-26 01:10:16
阅读次数:
268
算法描述:散列表是一种在时间和空间上做出权衡的查找算法。使用查找算法分为两步。第一步是通过散列函数将被查找的键转化未数组的一个索引。理想情况下,不同的键都能转为不同的索引值。当然,这只是理想情况,所以我们需要面对两个或多个键都被散列到相同索引值的情况。因此,散列查找的第二部就是处理碰撞冲突的过程。 ...
分类:
其他好文 时间:
2018-09-23 20:43:00
阅读次数:
245
class HashTable: def __init__(self, size): self.elem = [None for i in range(size)] self.count = size # def hash(self, key): return key % self.count # ... ...
分类:
编程语言 时间:
2018-09-22 10:39:15
阅读次数:
284