数据结构107-获取操作封装代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>哈希表的封装</title>
</head>
<body>
<script>
function hashFunc(str, size) {
var hashCode = 0;
//霍纳算法
for (var i = 0; i < str.length; i++) {
hashCode = 37 * hashCode + str.charCodeAt(i);
}
var index=hashCode%size
return index
}
function HashTable(){
this.storage=[]
this.count=0
this.limit=7*2
//方法
HashTable.prototype.put=function(key,value){
//根据key获取对应的index
var index=this.hashFunc(key,this.limit)
//根据index取出对应的bucket
var bucket=this.storage[index]
//、
if(bucket==null){
bucket=[],
this.storage[index]=bucket
}
for(var i=0;i<bucket.length;i++){
var tuple=bucket[i]
if(tuple[0]==key){
tuple[1]=value
return
}
}
bucket.push([key,value])
this.count+=1
}
HashTable.prototype.get=function(key){
//
var index=this.hashFunc(key,this.limit)
//根据index取出对应的bucket
var bucket=this.storage[index]
if(bucket==null){
return null
}
for(var i=0;i<bucket.length;i++){
var tuple=bucket[i]
if(tuple[0]==key){
return tuple[1]
}
}
return null
}
}
</script>
</body>
</html>

posted @   前端导师歌谣  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示