**What is stack in data structure?**

**What is stack ?**

**Push and pop operation in stack in data structure**

**Application and use of stack in data structure.**

** **

**(A) What is stack ?**

**Stack**** in data structure** is an abstract data type. Stack a linear data structure that allows inserting and deleting elements in a specific manner. When we want to insert an element in stack it can be added a top of the stack. All the insertion and deletion is performed at this TOP in **stack in data structure.**

** **

- It use First in last out(FILO) process or Last in first out ( LIFO)
- Suppose if S={S0,S1,S2……Sn-1}

Here S0 is a bottom element and stack has n element.

This Top is a variable which contain position of the newly inserted element.

## (B) Operations on stack

Following operations are performed on stack.

**Push and Pop operations on stack**

- The insertion of element into stack is called PUSH operation in stack.
- The deletion of element from stack is called POP operation in stack.
- PUSH (stack,integer) = stack, it add element shown by ‘i’ on to the stack s.
- POP (stack) = stack,it will remove the top element of the stack s.
- Get top (stack) = integer
- Isempty (stack) = boolean
- Isfull (stack) = boolean
- As stack is a ordered collection of items, and array is also an ordered collection of items, still array cannot be treated as a stack because of the following point:
- The no of element in array are fixed whereas for a stack there is no bound.

We can access any element in array by its index but for a stack only the top element can be assessed

**Algorithm for Push Operation**

Steps to add an item in stack data structure are as follows:

- At first we check if the stack is
**full**or not. - If the stack is full, then in this situation print error of overflow and exit the program.
- If the stack is not full, then at first we increment the top value by one and add the element at this new position ( new value of TOP variable).

Void push(s,N,Top,x)

/*S-name of stack

N-sixe of stack*/

{

if(top==N-1)

printf(“stack is overfull”)

exit();

}

else

{

top=top+1;

s[top]=x;

}

**Algorithm for POP operation**

Steps to remove an item from **stack data structure **are as follows:

- At first we check if the stack is empty or not.
- If the stack is empty, then in this situation we print error of underflow and exit the program.
- If the stack is not empty, then print the element at the top and then we have to decrement the top by one. This new value of Top variable is Top at this time.

int pop(S,N,Top)

/*s- name of stack

N-size of stack*/

{

int y;

if(top== -1)

{

printf(“stack is underflow”);

exit(1);

}

else

{

y=s[top]

top= top – 1;

return(y)

}

}

**(C) Use of Stack**

Different uses of **stack in data structure** are as follows –

**Parsing:** stacks are used by compilers to check the syntex of the program and for generating executable code.

**Function calls:** when a function is called all local storage for the function is allocated on the system “stack” ,and the return address(within the calling function) is also pushed on the system stack.

**Implementing Recursion:** they can be used to implement recursion if the programming language does not provide the facility for the same.

**Reversing a list:** we can also use stack for reversing a list.

**(D) Application of stack**

There are following applications of stack

- Real life
- Pile of books
- Plate trays

- More applications related to computer science
- Program execution stack (read more from your text)
- Evaluating expressions

- Recursion
- Reverse polish notation(infix to postfix)
- Postfix evolution
- Prefix to postfix
- Fibinocci series
- Tower of hanoi

## (D) Conclusion

Stack is a very useful data structure. Local variable in a function is also store in stack. In this tutorial we studied about basic concepts of **stack in data structure**, stack application and use , we also learn about **push and pop operations** in stack.