Added Stack implementation.

pull/1220/head
Manish Dait 2023-07-04 22:21:51 +05:30
parent d3c2184af8
commit 0c3a4bb864
1 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,82 @@
public class Stack<E> {
private int MAX;
private int top;
private Object[] array;
public Stack (int MAX) {
this.MAX = MAX;
this.array = (E[]) new Object[MAX];
this.top = -1;
}
public boolean isEmpty() {
return this.top < 0;
}
public boolean isFull() {
return this.top >= MAX-1;
}
public E pop() {
if (isEmpty()) {
try {
throw new Exception("EmptyStackException");
} catch (Exception e) {
e.printStackTrace();
}
}
return (E) this.array[top--];
}
public E push(E val) {
if (isFull()) {
try {
throw new Exception("StackOutOfBoundException");
} catch (Exception e) {
e.printStackTrace();
}
}
this.array[++top] = val;
return val;
}
public E peek() {
if(isEmpty()) {
try {
throw new Exception("EmptyStackException");
} catch (Exception e) {
e.printStackTrace();
}
}
return (E) this.array[top];
}
public int size() {
return this.top+1;
}
public void display() {
System.out.print("[ ");
for (int i = 0; i <= top; i++) {
System.out.print(this.array[i] + ", ");
}
System.out.print("]\n");
}
}
class Runner{
public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>(10);
stack.push(45);
stack.push(34);
stack.display();
System.out.println(stack.pop());
stack.display();
System.out.println(stack.peek());
stack.display();
}
}