Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Hash Table
- // key value pairs
- // {key: name, value: number}
- // constructor function for the table and consturctor function for the node
- function HashTable(size) {
- // make a new array of size of choice and assign it to property of buckets
- this.buckets = Array(size);
- this.numBuckets = this.buckets.length;
- }
- function HashNode(key, value, next) {
- this.key = key;
- this.value = value;
- this.next = next || null;
- }
- HashTable.prototype.hash = function(key) {
- var total = 0;
- for (var i = 0; i < key.length; i++) {
- total += key.charCodeAt(i);
- }
- var bucket = total % this.numBuckets;
- return bucket;
- };
- // console.log(myHT);
- // console.log(myHT.hash('Becca'));
- // console.log(myHT);
- // insert method
- // takes key/value pair and turns into a hash node then placed into correct bucket
- HashTable.prototype.insert = function(key, value) {
- var index = this.hash(key);
- if(!this.buckets[index]) {
- this.buckets[index] = new HashNode(key, value);
- } else {
- var currentNode = this.buckets[index];
- while(currentNode.next) {
- currentNode = currentNode.next;
- }
- currentNode.next = new HashNode(key, value);
- }
- };
- var myHT = new HashTable(30);
- myHT.insert('Dean', 'dean@gmail.com');
- myHT.insert('Meagan', 'meagan@gmail.com');
- myHT.insert('Dane', 'dane@yahoo.com');
- console.log(myHT.buckets);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement