User-defined generic stack using arrays
Fri Jun 07 2024 15:10:04 GMT+0000 (Coordinated Universal Time)
Saved by
@prabhas
class ArrayStack<T> {
private T[] stackArray;
private int top;
private int maxSize;
@SuppressWarnings("unchecked")
public ArrayStack(int maxSize) {
this.maxSize = maxSize;
this.stackArray = (T[]) new Object[maxSize];
this.top = -1;
}
public void push(T item) {
if (isFull()) {
System.out.println("Stack overflow");
return;
}
stackArray[++top] = item;
}
public T pop() {
if (isEmpty()) {
System.out.println("Stack underflow");
return null;
}
return stackArray[top--];
}
public T peek() {
if (isEmpty()) {
System.out.println("Stack is empty");
return null;
}
return stackArray[top];
}
public boolean isEmpty() {
return top == -1;
}
public boolean isFull() {
return top == maxSize - 1;
}
}
public class GenericStackDemo {
public static void main(String[] args) {
// Using ArrayStack
ArrayStack<Integer> integerStack = new ArrayStack<>(5);
integerStack.push(10);
integerStack.push(20);
System.out.println("Popped integer: " + integerStack.pop());
System.out.println("Peek integer: " + integerStack.peek());
ArrayStack<Double> doubleStack = new ArrayStack<>(5);
doubleStack.push(3.14);
doubleStack.push(6.28);
System.out.println("Popped double: " + doubleStack.pop());
System.out.println("Peek double: " + doubleStack.peek());
ArrayStack<String> stringStack = new ArrayStack<>(5);
stringStack.push("Hello");
stringStack.push("World");
System.out.println("Popped string: " + stringStack.pop());
System.out.println("Peek string: " + stringStack.peek());
}
}
content_copyCOPY
Comments