JavaScript数据结构-11.散列

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>散列</title>
 6     </head>
 7     <body>
 8         <script>
 9             function HashTable(){
10                 this.table = new Array(137);
11                 this.betterHash = betterHash;
12                 this.showDistro = showDistro;
13                 this.put = put;
14                 this.get = get;
15             }
16             function betterHash(data){
17                 const H =37;
18                 var total = 0;
19                 for(var i=0;i<data.length;i++){
20                     total += H*total + data.charCodeAt(i);
21                     
22                 }
23                 total %= this.table.length;
24                 if(total <0){
25                     total += this.table.length-1;
26                 }
27                 console.log(total,"total")
28                 return  parseInt(total);
29             }
30             
31             function put(key,data){
32                 var pos = this.betterHash(key);
33                 this.table[pos] = data;
34             }
35             function showDistro(){
36                 var n = 0;
37                 for(var i = 0;i<this.table.length;i++){
38                     if(this.table[i] != undefined){
39                         console.log(i,":",this.table[i]);
40                     }
41                 }
42             }
43             function get(key){
44                 return this.table[this.betterHash(key)];
45             }
46     
47             
48             
49             var obj = new HashTable();
50             obj.put("k1","zhangsan");
51             obj.put("k2","lisi");
52             obj.put("k3","javascript");
53             obj.showDistro();
54             console.log(obj.get("k3"));
55         </script>
56     </body>
57 </html>

 

posted @ 2017-07-16 21:26  橙云生  阅读(151)  评论(0编辑  收藏  举报