-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathImplementQueue.js
43 lines (37 loc) · 914 Bytes
/
ImplementQueue.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
Asked by - Samsung, Oracle, Amazon
Implement a Queue using Linked List.
*/
let Queue = {front:null, back:null} // Initialize empty queue.
// constructor to implement a LL.
function Node(data,next){
this.data = data
this.next = next
}
// Adding elements to the queue with time complexity - O(1)
function Enqueue(element){
let N = new Node(element,null)
if(Queue.back === null){
Queue.front = N
Queue.back = N
}else{
Queue.back.next = N
Queue.back = Queue.back.next
}
}
// Remove the front element from the Queue with time complexity - O(1)
function Dequeue(){
if(Queue.front !== null){
let first = Queue.front
Queue.front = Queue.front.next
return first.data
}else{
if(Queue.back !== null)
Queue.back = null
return `Queue is empty`
}
}
Enqueue(1);
Enqueue(2);
Enqueue(3);
Dequeue();