# Stack Data Structure

Let’s say you have collection of books, and someone ask you to pile them up.

Creating a pile of book

You have only one option for this: To place on top of the book pile. Hence, pile size become bigger by 1 book.

Removing a book from pile

You have only one option for this: To remove top most book on the pile. Hence, pile size become lesser by 1 book.

Find top of the pile

You need to check the top most book, and return its title.

Find size of pile

You need to find number of books in this book pile.

## What is stack data structure?

Stack data structure is a linear data structure, where insertion and deletion of items take place from single end only. As we were seeing the case of book piles above, they represent stack data structure.

Stack work on the principle of LIFO (Last In, First Out).

### Stack operations

• Push: Add new item in the stack. If the stack is full, then it is said to be an Overflow condition.
• Pop:Removes an item from the stack. The items are popped in the reversed order in which they are pushed. If the stack is empty, then it is said to be an Underflow condition.
• Peek or Top:Returns top element of stack.
• isEmpty: Returns true if stack is empty, else false.

### Stack Implementation Pseudo code

Stacks are used in either using linked list or array. Here, you can check the pseudo code for stack implementation.

Main Module

• Module main()
• Declare Integer max_size
• Call createStack()
• Do
• Case 1:
• Call Push(item)
• Case 2:
• Call Pop(item)
• Case 3:
• Call top()
• Case 4:
• Call isEmpty()
• Case 5:
• Call getSize()
• Case 6:
• Call isFull()
• End Select
• End Module

createStack Module

• Module createStack()
• Constructor()
• End Constructor
• End Module

Push Module

• Module Push(Node newelement)
• If getSize() < max_size
• prepend(newelement)
• End If
• End Module

Pop Module

• Module Pop(Node element)
• If getSize() > 0
• remove (element)
• End If
• End Module

Top Module

• Module Top()
• Return list[n-1]
• End Module

getSize Module

• Module getSize()
• Return len(list)
• End Module

isEmpty Module

• Module IsEmpty
• If len(list)=0
• Return true
• End if
• End Module

isFullModule

• Module IsFull
• If len(list)=max_size
• Return true
• End if
• End Module

### Stack data structure Interview questions

• Stack implementation using linked list
• Stack implementation using array
• Reverse a String using Stack
• Evaluation of Postfix Expression
• Design a stack which return minimum element in constant time
• Design a stack which return minimum element without using auxiliary stack
• Infix to Postfix Conversion using Stack
• Implement two stacks in an array
• Check for balanced parentheses in an expression
• Reverse a string using stack without recursion

## End Note

In this article, we have shared you stack data structure, implementation of stack data structure and questions that are frequently asked in job interviews and college assignments. Feel free to contact us if you have any doubt or confusion regarding stack data structure. You can contact us on info@xamnation.com regarding your programming assignment help and job interview preparation.

More resources on Data Structure and Programming