File tree 2 files changed +66
-9
lines changed
src/_DataStructures_/Queue
2 files changed +66
-9
lines changed Original file line number Diff line number Diff line change
1
+ class Queue {
2
+ constructor ( ) {
3
+ this . data = [ ] ;
4
+ }
5
+
6
+ add ( element ) {
7
+ // add element to the start of the data
8
+ return this . data . unshift ( element ) ;
9
+ }
10
+
11
+ peek ( ) {
12
+ return this . data [ this . data . length - 1 ] ;
13
+ }
14
+
15
+ remove ( ) {
16
+ return this . data . pop ( ) ;
17
+ }
18
+ }
19
+
20
+ module . exports = Queue ;
Original file line number Diff line number Diff line change 1
- class Queue {
1
+ const { LinkedList : SinglyLinkedLists , Node } = require ( '../LinkedList' ) ;
2
+
3
+ class Queue extends SinglyLinkedLists {
2
4
constructor ( ) {
3
- this . data = [ ] ;
5
+ super ( ) ;
6
+ this . NotAllowed = 'Not Allowed' ;
7
+ }
8
+
9
+ enqueue ( data ) {
10
+ const node = new Node ( data , null ) ;
11
+ return this . addAtEnd ( node ) ;
4
12
}
5
13
6
- add ( element ) {
7
- // add element to the start of the data
8
- return this . data . unshift ( element ) ;
14
+ dequeue ( ) {
15
+ const node = this . removeFromBeginning ( ) ;
16
+ return node . data ;
9
17
}
10
18
11
19
peek ( ) {
12
- return this . data [ this . data . length - 1 ] ;
20
+ return this . getLast ( ) ;
21
+ }
22
+
23
+ size ( ) {
24
+ return this . length ( ) ;
25
+ }
26
+
27
+ destroy ( ) {
28
+ this . delete ( ) ;
29
+ }
30
+
31
+ /** Override and throw error for other LL methods */
32
+ addAtBeginning ( ) {
33
+ throw new Error ( this . NotAllowed ) ;
34
+ }
35
+
36
+ addAt ( ) {
37
+ throw new Error ( this . NotAllowed ) ;
38
+ }
39
+
40
+ removeFromEnd ( ) {
41
+ throw new Error ( this . NotAllowed ) ;
42
+ }
43
+
44
+ getFirst ( ) {
45
+ throw new Error ( this . NotAllowed ) ;
46
+ }
47
+
48
+ getAt ( ) {
49
+ throw new Error ( this . NotAllowed ) ;
13
50
}
14
51
15
- remove ( ) {
16
- return this . data . pop ( ) ;
52
+ removeAt ( ) {
53
+ throw new Error ( this . NotAllowed ) ;
17
54
}
18
55
}
19
56
20
- module . exports = Queue ;
57
+ module . exports = Queue ;
You can’t perform that action at this time.
0 commit comments