亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript中實現鍵值對應的字典與哈希表結構的示例

2019-11-20 09:43:34
字體:
來源:轉載
供稿:網友

字典(Dictionary)的javascript實現
編程思路:

  • 使用了裸對象datastore來進行元素存儲;
  • 實現了兩種得到字典長度的方法,一種為變量跟蹤,一種為實時計算。

代碼:

function(){  "use strict";  function Dictionary(){    this._size = 0;    this.datastore = Object.create(null);  }  Dictionary.prototype.isEmpty = function(){    return this._size === 0;  };  Dictionary.prototype.size = function(){    return this._size;  };  Dictionary.prototype.clear = function(){    for(var key in this.datastore){      delete this.datastore[key];    }    this._size = 0;  };  Dictionary.prototype.add = function(key, value){    this.datastore[key] = value;    this._size++;  };  Dictionary.prototype.find = function(key){    return this.datastore[key];  };  Dictionary.prototype.count = function(){    var n = 0;    for(var key in this.datastore){      n++;    }    return n;  };  Dictionary.prototype.remove = function(key){    delete this.datastore[key];    this._size--;  };  Dictionary.prototype.showAll = function(){    for(var key in this.datastore){      console.log(key + "->" + this.datastore[key]);    }  };  module.exports = Dictionary;})();

散列(hashtable)的javascript實現
編程思路:

  • 以鏈表來解決實現開鏈法來解決碰撞,并使用自己寫的單鏈表庫LinkedList(詳見jb51之前的//www.49028c.com/article/86394.htm);
  • 用裸對象來存儲;
  • ValuePair簡單封裝鍵值對;
  • 以模塊模式組織代碼;

代碼:

valuePair.js

(function(){  "use strict";  function ValuePair(key, value){    this.key = key;    this.value = value;  }  ValuePair.prototype.toString = function(){    return "[" + this.key + ":" + this.value + "]";  };  module.exports = ValuePair;})();

hashtable.js

(function(){  "use strict";  var ValuePair = require("./lib/ValuePair");  var LinkedList = require("./LinkedList");  function Hashtable(){    this.table = Object.create(null);    this._size = 0;  }  Hashtable.prototype.isEmpty = function(){    return this._size === 0;  };  Hashtable.prototype.size = function(){    return this._size;  };  Hashtable.prototype.remove = function(key){    var index = hashCode(key);    if(this.table[index] == null){      return false;    }else{      var currNode = this.table[index].getHead();      while(currNode.next){        currNode = currNode.next;        if(currNode.element.key == key){          this.table[index].remove(currNode.element);          this._size--;          return true;        }      }      return false;    }  };  Hashtable.prototype.get = function(key){    var index = hashCode(key);    if(this.table[index] == null){      return null;    }else{      var currNode = this.table[index].getHead();      while(currNode.next){        currNode = currNode.next;        if(currNode.element.key == key){          return currNode.element;        }      }      return null;    }  };  Hashtable.prototype.put = function(key, value){    var index = hashCode(key);    if(this.table[index] == null){      this.table[index] = new LinkedList();    }    var currNode = this.table[index].getHead();    while(currNode.next){            //key若已經存在,修改value值為新值      currNode = currNode.next;      if(currNode.element.key == key){        currNode.element.value = value;        break;      }    }    if(currNode.next == null && currNode.element.value != value){         //key不存在,加入新值.注意邊界值      this.table[index].add(new ValuePair(key,value));      this._size++;    }    return this;  };  Hashtable.prototype.display = function(){    for(var key in this.table){      var currNode = this.table[key].getHead();      while(currNode.next){        currNode = currNode.next;        console.log(currNode.element.toString());      }    }  };  /*********************** Utility Functions ********************************/  function hashCode(key) {        //霍納算法,質數取37    var hashValue = 6011;    for (var i = 0; i < key.length; i++) {      hashValue = hashValue * 37 + key.charCodeAt(i);    }    return hashValue % 1019;  }  module.exports = Hashtable;})();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
激情成人在线视频| 国产成人免费av| 日本一区二区三区四区视频| 欧美高清一级大片| 国产欧美久久一区二区| 国产不卡一区二区在线播放| 欧美成人激情视频| 91av在线免费观看视频| 欧美xxxx18性欧美| 4k岛国日韩精品**专区| 午夜精品一区二区三区在线| 国产日韩亚洲欧美| 亚洲欧洲中文天堂| 亚洲国产黄色片| 欧美成人激情视频免费观看| 性日韩欧美在线视频| 久久国产精品免费视频| 欧美人与性动交a欧美精品| 中文国产成人精品久久一| 亚洲欧美色图片| 亚洲丁香久久久| 亚洲美女黄色片| 九九热这里只有在线精品视| 成人激情视频在线播放| 精品国产区一区二区三区在线观看| 欧美极品少妇全裸体| 欧美另类极品videosbestfree| 久久精品国产电影| 国产日韩欧美夫妻视频在线观看| 国产成人高清激情视频在线观看| 精品毛片三在线观看| 91精品国产综合久久香蕉| 成人激情视频免费在线| 色哟哟亚洲精品一区二区| 成人免费视频在线观看超级碰| 欧美日韩人人澡狠狠躁视频| 国产乱肥老妇国产一区二| 国产亚洲精品一区二555| 久久成人18免费网站| 2019中文字幕在线观看| 亚洲激情成人网| 欧美高清无遮挡| 国产精品91一区| 九九九久久国产免费| 欧美成在线视频| 国产福利精品在线| 久久国产精品久久国产精品| 18一19gay欧美视频网站| 国产91在线播放| 国产精品igao视频| 色婷婷av一区二区三区在线观看| 亚洲国产精品va| 亚洲天堂av图片| 久久久999国产| 91久久精品美女高潮| 亚洲www在线| 色噜噜亚洲精品中文字幕| 91中文字幕在线| 91地址最新发布| 国产精品v片在线观看不卡| 色综合久久久888| 日韩精品一区二区视频| 亚洲第一区中文字幕| 日本精品va在线观看| 日本伊人精品一区二区三区介绍| 久久久久久久激情视频| 成人免费视频在线观看超级碰| 在线免费观看羞羞视频一区二区| 亚洲欧美精品一区| 亚洲最新av在线| 91精品视频一区| 国产精品极品美女粉嫩高清在线| 日韩高清电影免费观看完整版| 欧美麻豆久久久久久中文| 91精品国产乱码久久久久久久久| 日韩精品在线影院| 97人洗澡人人免费公开视频碰碰碰| 久热精品在线视频| 国语自产在线不卡| 中文字幕国产亚洲2019| 国产亚洲视频中文字幕视频| 欧美国产在线电影| 国产日产亚洲精品| 久久精品91久久久久久再现| 亚洲综合色av| 色多多国产成人永久免费网站| 91国内免费在线视频| 亚洲人成在线免费观看| 欧美视频裸体精品| 日韩免费av片在线观看| 亚洲第一精品久久忘忧草社区| 一本色道久久综合狠狠躁篇的优点| 国产成人精品电影| 日韩免费在线观看视频| 午夜精品一区二区三区在线| 亚洲精品久久久久久久久久久久| 久久人人爽人人| 色噜噜狠狠狠综合曰曰曰88av| 国产精品影片在线观看| 国产亚洲激情视频在线| 日韩高清欧美高清| 中文字幕av一区中文字幕天堂| 欧美一区在线直播| 97久久精品在线| 亚洲国产精品系列| 欧美日韩国产va另类| 久久久久久久国产精品视频| 91经典在线视频| 国产主播欧美精品| 亚洲qvod图片区电影| 亚洲午夜女主播在线直播| 91精品久久久久久久久久| 日韩中文在线观看| 大量国产精品视频| 亚洲第一中文字幕| 欧美黑人巨大xxx极品| 中文字幕亚洲图片| 欧美俄罗斯性视频| 欧洲精品在线视频| 国产精品一区电影| 乱亲女秽乱长久久久| 777午夜精品福利在线观看| 精品露脸国产偷人在视频| 日韩成人激情视频| 国产在线观看精品一区二区三区| 在线免费看av不卡| 日韩黄色高清视频| 亚洲精品乱码久久久久久按摩观| 7m精品福利视频导航| 久久91亚洲精品中文字幕奶水| 高跟丝袜欧美一区| 亚洲国产精品久久久久秋霞不卡| 亚洲在线视频福利| 欧美精品亚州精品| 毛片精品免费在线观看| 久久亚洲综合国产精品99麻豆精品福利| 久久91亚洲人成电影网站| 欧美丰满少妇xxxxx| 91精品国产综合久久久久久蜜臀| 国产中文字幕91| 精品国产一区av| 欧美噜噜久久久xxx| 国产在线精品自拍| 欧美黄色www| 久久久久久久久久久久av| 狠狠躁夜夜躁久久躁别揉| 日韩在线视频观看正片免费网站| 亚洲人成电影网站色| 久久九九热免费视频| 国产精品色午夜在线观看| 欧洲亚洲免费在线| 日韩电影视频免费| 色偷偷av一区二区三区乱| 欧美日韩在线视频观看| 亚洲欧美精品suv| 日本精品一区二区三区在线| 精品国产一区二区三区四区在线观看| 91丝袜美腿美女视频网站| 国产成人精品电影久久久| 亚洲欧美资源在线| 亚洲午夜精品久久久久久性色| 久久在线免费视频| 中文字幕日韩免费视频| 亚洲欧美综合v|