-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArrayStack.java
More file actions
64 lines (59 loc) · 1.34 KB
/
ArrayStack.java
File metadata and controls
64 lines (59 loc) · 1.34 KB
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
import java.util.*;
public class ArrayStack<E> implements StackADT<E>
{
int top;
E[] S;
/**
* Constructor for objects of class ArrayStack
*/
public ArrayStack(int capacity)
{
top = -1;
S = (E[]) new Object[capacity];
// Casting is used in the above as generic arrays cannot be created using new E[]
}
public ArrayStack(){
top = -1;
S = (E[]) new Object[5];
}
/**
@throws FullStackException
*/
public void push(E element){
if (top == S.length-1)
throw new FullStackException("Stack is full, so cannot push on to stack");
top++;
S[top] = element;
}
/**
@throws EmptyStackException
*/
public E pop(){
E element;
if (isEmpty())
throw new EmptyStackException("Stack is empty, so cannot pop from stack");
element = S[top];
top--;
return element;
}
/**
@throws EmptyStackException
*/
public E top(){
E element;
if(isEmpty())
throw new EmptyStackException("Stack is empy so cannot read from stack");
element = S[top];
return element;
}
public int size(){
int size = top + 1;
return size;
}
public boolean isEmpty(){
if(top < 0){
return true;
}
return false;
}
}