A Stack
is a linear list of elements in which insertion and deletions can
takes place from only one end called top of the stack.
A
common example of stack is a collection of trays on which the
operations can be performed by inserting and deleting the new tray
from top end only.
PUSH
operation: The insertion operation on the stack is called PUSH
operation.
POP
operation: The deletion operation from the stack is called POP
operation.
The
insertion and deletion can be done by only at the top of the stack.
Initially
top =-1 , when the STACK is empty. And when we PUSH new elements into
the STACK (12,13,14) then top=2.
When we
pop two elements from the STACK, then top=0.
1)
STACK OVERFLOW: It is the situation where, there is no place in the
STACK to perform PUSH operation.
2)
STACK UNDERFLOW: It is the situation where, the STACK is empty and we
cannot POP elements from the STACK.
The Operations which can be performed on STACK are:
1) PUSH: Adding an element into the STACK
2) POP: Removing an element from the STACK
3) DISPLAY : Showing all elements which are present in the STACK
JAVA PROGRAM implementing STACK operations
import
java.util.Scanner;
class
Stack {
int[]
a;
int
top;
public
Stack(int n) {
a
= new int[n];
top
= -1;
}
public
void push(int val) {
if
(top == a.length - 1) {
System.out.println("Stack
overflow...");
}
else {
top++;
a[top]
= val;
}
}
public
void pop() {
if
(top == -1) {
System.out.println("Stack
underflow...");
}
else {
System.out.println("Element
popped" + a[top]);
top--;
}
}
public
void display() {
if
(top == -1) {
System.out.println("Stack
empty...");
}
else {
for
(int i = top; i >= 0; i--) {
System.out.println("Stack
element: " + a[i]);
}
}
}
}
public
class UseStack {
static
public void main(String args[]) {
Scanner
sc = new Scanner(System.in);
Stack
s;
int
n;
System.out.println("Enter
the size of the stack: ");
n
= sc.nextInt();
s
= new Stack(n);
int
choice;
do
{
System.out.println("1.PUSH"
+ "\n" + "2.POP" + "\n" + "3.DISPLAY"
+ "\n" + "0.EXIT");
System.out.println("Enter
your choice");
choice
= sc.nextInt();
switch
(choice) {
case
1:
int
value;
System.out.println("Enter
element to push");
value
= sc.nextInt();
s.push(value);
break;
case
2:
s.pop();
break;
case
3:
s.display();
case
0:
break;
default:
System.out.println("invalid
choice...");
}
}
while (choice != 0);
}
}
No comments:
Post a Comment