Data Structures Tutorial

Data Structures Tutorial Asymptotic Notation Structure and Union Array Data Structure Linked list Data Structure Type of Linked list Advantages and Disadvantages of linked list Queue Data Structure Implementation of Queue Stack Data Structure Implementation of Stack Sorting Insertion sort Quick sort Selection sort Heap sort Merge sort Bucket sort Count sort Radix sort Shell sort Tree Traversal of the binary tree Binary search tree Graph Spanning tree Linear Search Binary Search Hashing Collision Resolution Techniques

Misc Topic:

Priority Queue in Data Structure Deque in Data Structure Difference Between Linear And Non Linear Data Structures Queue Operations In Data Structure About Data Structures Data Structures Algorithms Types of Data Structures Big O Notations Introduction to Arrays Introduction to 1D-Arrays Operations on 1D-Arrays Introduction to 2D-Arrays Operations on 2D-Arrays Strings in Data Structures String Operations Application of 2D array Bubble Sort Insertion Sort Sorting Algorithms What is DFS Algorithm What Is Graph Data Structure What is the difference between Tree and Graph What is the difference between DFS and BFS Bucket Sort Dijkstra’s vs Bellman-Ford Algorithm Linear Queue Data Structure in C Stack Using Array Stack Using Linked List Recursion in Fibonacci Stack vs Array What is Skewed Binary Tree Primitive Data Structure in C Dynamic memory allocation of structure in C Application of Stack in Data Structures Binary Tree in Data Structures Heap Data Structure Recursion - Factorial and Fibonacci What is B tree what is B+ tree Huffman tree in Data Structures Insertion Sort vs Bubble Sort Adding one to the number represented an array of digits Bitwise Operators and their Important Tricks Blowfish algorithm Bubble Sort vs Selection Sort Hashing and its Applications Heap Sort vs Merge Sort Insertion Sort vs Selection Sort Merge Conflicts and ways to handle them Difference between Stack and Queue AVL tree in data structure c++ Bubble sort algorithm using Javascript Buffer overflow attack with examples Find out the area between two concentric circles Lowest common ancestor in a binary search tree Number of visible boxes putting one inside another Program to calculate the area of the circumcircle of an equilateral triangle Red-black Tree in Data Structures Strictly binary tree in Data Structures 2-3 Trees and Basic Operations on them Asynchronous advantage actor-critic (A3C) Algorithm Bubble Sort vs Heap Sort Digital Search Tree in Data Structures Minimum Spanning Tree Permutation Sort or Bogo Sort Quick Sort vs Merge Sort Boruvkas algorithm Bubble Sort vs Quick Sort Common Operations on various Data Structures Detect and Remove Loop in a Linked List How to Start Learning DSA Print kth least significant bit number Why is Binary Heap Preferred over BST for Priority Queue Bin Packing Problem Binary Tree Inorder Traversal Burning binary tree Equal Sum What is a Threaded Binary Tree? What is a full Binary Tree? Bubble Sort vs Merge Sort B+ Tree Program in Q language Deletion Operation from A B Tree Deletion Operation of the binary search tree in C++ language Does Overloading Work with Inheritance Balanced Binary Tree Binary tree deletion Binary tree insertion Cocktail Sort Comb Sort FIFO approach Operations of B Tree in C++ Language Recaman’s Sequence Tim Sort Understanding Data Processing

Difference between Stack and Queue

In this article, we will learn about the major differences between Stack and Queue data structures.

What is a stack?

Stack – A stack is an abstract data structure defined as the linear collection of ordered data items in which element’s addition and deletion take place at one end of the stack.

It follows the LIFO (Last In First Out) or FILO (First In Last Our) principle, i.e., the element inserted in last is removed first, and the element inserted first is removed in last. Push and Pop operations are the basic operations performed on a stack. Push refers to the addition of an element at the top of the stack and pop refers to the deletion of the top element.

Difference Between Stack And Queue

What is Queue?

Queue – In the data structure, a queue is defined as the non-primitive and linear collection of ordered data of the same data type. It is also referred to as the ordered list, as all the elements have a specific order in the queue.

An element’s insertion takes place at one end of the queue, known as the rear of the queue and an element’s deletion takes place at another end of the queue, known as the front of the queue. If follows the FIFO (First In First Out) or LILO (Last In Last Out) mechanism, i.e., the newly added element into the queue is removed last, and the firstly added element into the queue is removed first. The basic operation performed on a queue are Enqueue (to add an element at the rear) and Dequeue (to delete an element from the front).

Difference Between Stack And Queue

Difference between Stack and Queue:

The main differences between these two data structures are given in the table below:

Difference Between Stack And Queue
The idea is to store data linearly such that an element’s insertion and deletion follow the FILO mechanism.The idea is to store the data linearly such that an element’s insertion and deletion follow the FIFO mechanism.
Frequently accessed element of the stack is the top element.The front element of the queue is the most accessible.
Insertion and deletion of an element are performed at one end of the stack.An element’s insertion occurs at one end, known as the rear of the queue, and deletion at another end, known as the front of the queue.
Push and Pop operations are the basic operations performed on a stack.Enqueue and Dequeue are the basics operations performed on a queue.
In the stack, we only need to main one top pointer.We need to maintain two front and rear pointers in the queue and require extra memory for one extra pointer.
The top pointer points to the last element of the stack, known as the top of the stack.The front pointer and the rear pointer address the front and rear elements of the queue respectively.
The top pointer determines the stack overflow condition in the static implementation, and the condition for the same is top == n – 1, where n is the size of the array.In the static implementation, the full linear queue condition is determined by the rear pointer, and the condition for the same is rear == n – 1, where n is the size of the array.
Top = -1 is the condition of stack underflow, which denotes an empty stack.If the front is equal to -1, we can say the queue is empty. In such a case, the rear also becomes equal to -1.
Applications of a stack include Recursion, DFS (Depth-first search), Arithmetic expression evaluations, redo and undo operations, Managing function calls, Data reversing, backward and forward operations in the browser, etc.Applications of a queue include CPU scheduling, Disk scheduling, BFS (Breadth-first search), handles interruptions in operating systems, etc.
No other variants of the stack.Simple Queue, Circular Queue, Double Ended Queue, and Priority Queue are the four types of queues.
Real-life example – A stack of plastic cups or trays at the canteen, a stack of books on a bookshelf, etc.Real-life example – A queue of people at the bank or the ticket counter, a queue of ants, a car line at the car-washing centre, etc.