-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstacksAndQueues.js
96 lines (69 loc) · 1.66 KB
/
stacksAndQueues.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import { LinkedList, Node } from "./linkedList.js";
class Stack{
constructor(){
this.stack = [];
}
push(value){
return this.stack.push(value);// adds the new value at higher indices
}
pop(){
return this.stack.pop();
}
get length(){
return this.stack.length;
}
peek(){
return this.stack[this.stack.length - 1];// peeks the last value that was inserted
}
isEmpty(){
return this.stack.length === 0;
}
}
class Queue{
constructor(){
this.queue = [];
}
enqueue(value){
return this.queue.unshift(value);// adds the new value at array[0] by shifting the earlier value to higher indices
}
dequeue(){
return this.queue.pop();// removes the last index of the array, here it is first value to be inserted due to first in first out.
}
get length(){
return this.queue.length;
}
peek(){
return this.queue[this.length-1];// peeks the first value that was inserted
}
isEmpty(){
return this.queue.length === 0;
}
}
//to remove the first index from the array we use shift(); i.e array.shift();
export {Stack, Queue, Stack1};
class Stack1{
constructor(){
this.list = new LinkedList();
}
push(value){
this.list.insert(value);
}
pop(){
this.list.remove(this.list.last.value);
return this.list;
}
peek(){
return this.list.last.value;
}
print(){
this.list.print();
}
isEmpty(){
if(this.list == null){
return true;
}
}
get length(){
return this.list.length();
}
}