Skip to content

Commit 9f4efdc

Browse files
author
Wakidur Rahaman
committed
updated hash table
1 parent 95c2d31 commit 9f4efdc

File tree

1 file changed

+54
-38
lines changed

1 file changed

+54
-38
lines changed
Lines changed: 54 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,59 @@
11
var HashTableMain = /** @class */ (function () {
2-
function HashTableMain(size) {
3-
this.data = [];
4-
this.data = new Array(size);
5-
}
6-
HashTableMain.prototype.hash = function (key) {
7-
var hash = 0;
8-
for (var i = 0; i < key.length; i++) {
9-
hash = (hash + key.charCodeAt(i) * i) % this.data.length;
2+
function HashTableMain(size) {
3+
this.data = [];
4+
this.data = new Array(size);
105
}
11-
return hash;
12-
};
13-
/**
14-
* set
15-
*/
16-
HashTableMain.prototype.set = function (key, value) {
17-
var address = this.hash(key);
18-
if (!this.data[address]) {
19-
this.data[address] = [];
20-
}
21-
this.data[address].push([key, value]);
22-
return this.data;
23-
};
24-
/**
25-
* Get
26-
*/
27-
HashTableMain.prototype.get = function (key) {
28-
var getAddress = this.hash(key);
29-
var currentBucket = this.data[getAddress];
30-
if (currentBucket) {
31-
for (var i = 0; i < currentBucket.length; i++) {
32-
if (currentBucket[i][0] === key) {
33-
return currentBucket[i][1];
6+
HashTableMain.prototype.hash = function (key) {
7+
var hash = 0;
8+
for (var i = 0; i < key.length; i++) {
9+
hash = (hash + key.charCodeAt(i) * i) % this.data.length;
3410
}
35-
}
36-
}
37-
return undefined;
38-
};
39-
return HashTableMain;
40-
})();
11+
return hash;
12+
};
13+
/**
14+
* set
15+
*/
16+
HashTableMain.prototype.set = function (key, value) {
17+
var address = this.hash(key);
18+
if (!this.data[address]) {
19+
this.data[address] = [];
20+
}
21+
this.data[address].push([key, value]);
22+
return this.data;
23+
};
24+
/**
25+
* Get
26+
*/
27+
HashTableMain.prototype.get = function (key) {
28+
var getAddress = this.hash(key);
29+
var currentBucket = this.data[getAddress];
30+
if (currentBucket) {
31+
for (var i = 0; i < currentBucket.length; i++) {
32+
if (currentBucket[i][0] === key) {
33+
return currentBucket[i][1];
34+
}
35+
}
36+
}
37+
return undefined;
38+
};
39+
/**
40+
* keys
41+
*/
42+
HashTableMain.prototype.keys = function () {
43+
var keysArray = [];
44+
console.log(this.data.length);
45+
for (var i = 0; i < this.data.length; i++) {
46+
console.log(this.data[i]);
47+
if (this.data[i]) {
48+
console.log(this.data[i][0]);
49+
console.log(this.data[i][0][0]);
50+
keysArray.push(this.data[i][0][0]);
51+
}
52+
}
53+
return keysArray;
54+
};
55+
return HashTableMain;
56+
}());
4157
// Example
4258
var myHashTable01 = new HashTableMain(50);
4359
myHashTable01.set('grapes', 10000);
@@ -46,5 +62,5 @@ myHashTable01.set('apples', 9);
4662
myHashTable01.get('apples');
4763
myHashTable01.set('banana', 'Nice foots');
4864
myHashTable01.get('banana');
49-
65+
myHashTable01.keys();
5066
console.log(myHashTable01.data);

0 commit comments

Comments
 (0)