Examples
package com.w3schools;
public class Test {
private int stackSize;
private int[] stackArr;
private int top;
/**
* constructor to create stack with size
* @param size
*/
public Test(int size) {
this.stackSize = size;
this.stackArr = new int[stackSize];
this.top = -1;
}
/**
* Adds new entry to the top of the stack
* @param entry
* @throws Exception
*/
public void push(int entry) throws Exception {
if(this.isStackFull()){
System.out.println("Stack Overflow");
}
System.out.println("Adding: "+entry);
this.stackArr[++top] = entry;
}
/**
* Removes an entry from the top of the stack.
* @return
* @throws Exception
*/
public int pop() throws Exception {
if(this.isStackEmpty()){
System.out.println("Stack underflow.");
}
int entry = this.stackArr[top--];
System.out.println("Removed entry: "+entry);
return entry;
}
/**
* Returns top of the stack without removing it.
* @return
*/
public int peek() {
return stackArr[top];
}
/**
* Returns true if the stack is empty
* @return
*/
public boolean isStackEmpty() {
return (top == -1);
}
/**
* Returns true if the stack is full
* @return
*/
public boolean isStackFull() {
return (top == stackSize - 1);
}
public static void main(String args[]){
Test stack = new Test(4);
try {
stack.push(14);
stack.push(82);
stack.push(32);
stack.push(8);
stack.pop();
stack.push(3);
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
} |
package com.w3schools;
public class Test {
private int stackSize;
private int[] stackArr;
private int top;
/**
* constructor to create stack with size
* @param size
*/
public Test(int size) {
this.stackSize = size;
this.stackArr = new int[stackSize];
this.top = -1;
}
/**
* Adds new entry to the top of the stack
* @param entry
* @throws Exception
*/
public void push(int entry) throws Exception {
if(this.isStackFull()){
System.out.println("Stack Overflow");
}
System.out.println("Adding: "+entry);
this.stackArr[++top] = entry;
}
/**
* Removes an entry from the top of the stack.
* @return
* @throws Exception
*/
public int pop() throws Exception {
if(this.isStackEmpty()){
System.out.println("Stack underflow.");
}
int entry = this.stackArr[top--];
System.out.println("Removed entry: "+entry);
return entry;
}
/**
* Returns top of the stack without removing it.
* @return
*/
public int peek() {
return stackArr[top];
}
/**
* Returns true if the stack is empty
* @return
*/
public boolean isStackEmpty() {
return (top == -1);
}
/**
* Returns true if the stack is full
* @return
*/
public boolean isStackFull() {
return (top == stackSize - 1);
}
public static void main(String args[]){
Test stack = new Test(4);
try {
stack.push(14);
stack.push(82);
stack.push(32);
stack.push(8);
stack.pop();
stack.push(3);
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Output
Adding: 14
Adding: 82
Adding: 32
Adding: 8
Removed entry: 8
Adding: 3
Removed entry: 3
Removed entry: 32
Removed entry: 82
Removed entry: 14
Stack underflow.
-1 |
Adding: 14
Adding: 82
Adding: 32
Adding: 8
Removed entry: 8
Adding: 3
Removed entry: 3
Removed entry: 32
Removed entry: 82
Removed entry: 14
Stack underflow.
-1