Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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‎

Lines changed: 8 additions & 3 deletions
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‎

Lines changed: 13 additions & 13 deletions
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‎

Lines changed: 14 additions & 5 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /