Below is a simple implementation of a stack in Java using an array:
public class Stack {
private int maxSize;
private int[] stackArray;
private int top;
// Constructor to initialize the stack
public Stack(int size) {
this.maxSize = size;
this.stackArray = new int[maxSize];
this.top = -1;
}
// Method to push an element onto the stack
public void push(int value) {
if (isFull()) {
System.out.println("Stack is full. Cannot push element.");
return;
}
stackArray[++top] = value;
}
// Method to pop an element from the stack
public int pop() {
if (isEmpty()) {
System.out.println("Stack is empty. Cannot pop element.");
return -1;
}
return stackArray[top--];
}
// Method to peek at the top element of the stack
public int peek() {
if (isEmpty()) {
System.out.println("Stack is empty.");
return -1;
}
return stackArray[top];
}
// Method to check if the stack is empty
public boolean isEmpty() {
return (top == -1);
}
// Method to check if the stack is full
public boolean isFull() {
return (top == maxSize - 1);
}
// Method to display the elements of the stack
public void display() {
if (isEmpty()) {
System.out.println("Stack is empty.");
return;
}
System.out.println("Elements of the stack:");
for (int i = top; i >= 0; i--) {
System.out.println(stackArray[i]);
}
}
public static void main(String[] args) {
// Create a stack with maximum size of 5
Stack stack = new Stack(5);
// Push elements onto the stack
stack.push(1);
stack.push(2);
stack.push(3);
// Display the stack
stack.display();
// Peek at the top element
System.out.println("Top element: " + stack.peek());
// Pop elements from the stack
System.out.println("Popped element: " + stack.pop());
System.out.println("Popped element: " + stack.pop());
// Display the stack after popping elements
stack.display();
}
}
This implementation provides methods to push, pop, peek, check if the stack is empty or full, and display the elements of the stack. You can customize it further based on your requirements.