Small code errors for the LinkedList and HashTable data structures
AlexIoanGheorghita opened this issue · 3 comments
Hello!
As I went through the code for these data structures, I noticed two small errors:
-
inside the
delete()
method of theLinkedList
data structure, there is a line of code that says:while (this.head && this.compare.equal(this.head.value, value))
. However, instead of awhile
it should be anif
statement. -
inside the
constructor()
of theHashTable
data structure, we initialize an array in the following way:this.buckets = Array(hashTableSize).fill(null).map(() => new LinkedList());
. However, theArray()
constructor should have thenew
keyword in front of it.
If you guys feel that these are important fixes to you and if you allow me to help, I would be more than glad to contribute by creating a pull request with the changes made.
I can do this , can you assign this to me
Hello ..Its SSOC Contributor .I can easily do this .
.Can u assign me issue under SSOC'23 label please ?
For the LinkedList
data structure, you're correct that the while
statement should be replaced with an if
statement. Here's the corrected delete
method:
delete(value) {
if (!this.head) {
return;
}
if (this.compare.equal(this.head.value, value)) {
this.head = this.head.next;
return;
}
let current = this.head;
while (current.next) {
if (this.compare.equal(current.next.value, value)) {
current.next = current.next.next;
return;
}
current = current.next;
}
}
For the HashTable
data structure, you're correct that the Array()
constructor should have the new
keyword. Here's the corrected constructor:
constructor(hashTableSize) {
this.buckets = new Array(hashTableSize).fill(null).map(() => new LinkedList());
this.keys = {};
}