代码拉取完成,页面将自动刷新
package hash
import "gitee.com/kklt1996/data-structure/tree"
type Able interface {
HashCode() string
}
/*
创建hash表
*/
func CreateHashTableDeFault(comparator func(thisKey interface{},
compareKey interface{}) int) *Table {
return CreateHashTable(16, comparator)
}
/*
comparator 可以为空,但是必须实现了common.CompareAble接口
*/
func CreateHashTable(capacity int,
comparator func(thisKey interface{}, compareKey interface{}) int) *Table {
lowerTol := 2
upperTol := 10
// 找到合适的容量
capacityIndex := 0
for i := 0; i < len(capacityPrime); i++ {
if capacity <= capacityPrime[i]*upperTol {
// 预期元素个数 小于 素数容量*每个哈希地址最大容纳的元素个数 (保证这么多元素不需要扩容)
capacity = capacityPrime[i]
capacityIndex = i
break
}
}
// 初始化哈希表
data := make([]*tree.RedBlackTree, capacity, capacity)
for i := 0; i < capacity; i++ {
redBlackTree := tree.CreateRedBlackTree(comparator)
data[i] = redBlackTree
}
table := Table{hashtable: data, capacity: capacity, size: 0, upperTol: upperTol, lowerTol: lowerTol,
comparator: comparator, capacityIndex: capacityIndex}
return &table
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。