-
Notifications
You must be signed in to change notification settings - Fork 107
Expand file tree
/
Copy pathStack.js
More file actions
42 lines (36 loc) · 841 Bytes
/
Stack.js
File metadata and controls
42 lines (36 loc) · 841 Bytes
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
export default class Stack {
constructor() {
this.items = [];
this.top = null;
}
getTop() {
if(this.items.length == 0)
return null;
return this.top;
}
isEmpty() {
return this.items.length == 0;
}
size() {
return this.items.length;
}
push(element) {
this.items.push(element);
this.top = element;
}
pop() {
if(this.items){
if(this.items.length == 1){
this.top = null;
return this.items.pop();
}
else {
this.top = this.items[this.items.length - 2];
return this.items.pop();
}
}
else {
throw Error("Stack Underflow Exception: The stack is empty.");
}
}
}