Skip to content

Commit 515f423

Browse files
committed
fix: change in Queue APIs
1 parent cc29c56 commit 515f423

File tree

3 files changed

+35
-21
lines changed

3 files changed

+35
-21
lines changed

src/_DataStructures_/LinkedList/index.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ class LinkedList {
2222
}
2323

2424
addAtEnd(element) {
25+
const node = new Node(element, null);
26+
this.size += 1;
27+
2528
if (!this.head) {
26-
return this.addAtBeginning(element);
29+
this.head = node;
30+
this.tail = node;
31+
return node;
2732
}
28-
const node = new Node(element, null);
2933
this.tail.next = node;
3034
this.tail = node;
31-
this.size += 1;
3235
return node;
3336
}
3437

@@ -42,6 +45,7 @@ class LinkedList {
4245
const node = this.head;
4346
this.head = this.head.next;
4447
this.size -= 1;
48+
node.next = null;
4549
return node;
4650
}
4751

@@ -139,6 +143,7 @@ class LinkedList {
139143
const node = address;
140144
previous.next = address.next.next;
141145
this.size -= 1;
146+
node.next = null;
142147
return node;
143148
}
144149

src/_DataStructures_/Queue/Queue.test.js

+13-13
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ describe('Data Structure : Queue', () => {
1212
queue = new Queue();
1313
});
1414

15-
it('Should enqueue() element to a queue', () => {
15+
it('Should add element to a queue', () => {
1616
queue.enqueue(5);
17-
expect(queue.peek()).toEqual([5]);
17+
expect(queue.peek()).toEqual(5);
1818
});
1919

2020
it('Should dequeue() an element from the queue', () => {
@@ -23,7 +23,7 @@ describe('Data Structure : Queue', () => {
2323

2424
expect(queue.dequeue()).toEqual(2);
2525
expect(queue.peek()).toEqual(3);
26-
expect(queue.size()).toEqual(1);
26+
expect(queue.length()).toEqual(1);
2727
});
2828

2929
describe('peek()', () => {
@@ -38,21 +38,21 @@ describe('Data Structure : Queue', () => {
3838

3939
it('Should not remove the element', () => {
4040
expect(queue.peek()).toEqual(2);
41-
expect(queue.remove()).toEqual(2);
41+
expect(queue.dequeue()).toEqual(2);
4242
});
4343
});
4444

4545
it('Should maintain the order of elements', () => {
4646
// first in first out
47-
queue.add(2);
48-
queue.add(1);
49-
queue.add(4);
50-
queue.add(3);
51-
52-
expect(queue.remove()).toEqual(2);
53-
expect(queue.remove()).toEqual(1);
54-
expect(queue.remove()).toEqual(4);
55-
expect(queue.remove()).toEqual(3);
47+
queue.enqueue(2);
48+
queue.enqueue(1);
49+
queue.enqueue(4);
50+
queue.enqueue(3);
51+
52+
expect(queue.dequeue()).toEqual(2);
53+
expect(queue.dequeue()).toEqual(1);
54+
expect(queue.dequeue()).toEqual(4);
55+
expect(queue.dequeue()).toEqual(3);
5656
});
5757
});
5858
});

src/_DataStructures_/Queue/index.js

+14-5
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ class Queue extends SinglyLinkedLists {
77
}
88

99
enqueue(data) {
10-
const node = new Node(data, null);
11-
return this.addAtEnd(node);
10+
return this.addAtEnd(data);
1211
}
1312

1413
dequeue() {
@@ -17,11 +16,12 @@ class Queue extends SinglyLinkedLists {
1716
}
1817

1918
peek() {
20-
return this.getFirst();
19+
const node = this.getFirst();
20+
return node.data;
2121
}
2222

23-
size() {
24-
return this.length();
23+
length() {
24+
return this.size;
2525
}
2626

2727
destroy() {
@@ -54,4 +54,13 @@ class Queue extends SinglyLinkedLists {
5454
}
5555
}
5656

57+
const q = new Queue();
58+
59+
q.enqueue(10);
60+
q.enqueue(101);
61+
q.enqueue(44);
62+
63+
console.log(q.length());
64+
console.log(q.dequeue());
65+
5766
module.exports = Queue;

0 commit comments

Comments
 (0)