Data Structures Design data structure that support insert, delete and get random operations We will understand in depth the designing of a data structure that supports "insert value", "delete value" and "get random" operations where these tasks are performed in constant time O(1).

Data Structures "Design a Data Structure" problems We have present some must practice "Design a Data Structure" problems. These are important problems for Coding Interviews at Google and other companies. You need to modify standard data structure to form new data structures to solve this problem efficiently.

Algorithms List of 50+ Binary Tree Problems for Coding Interviews We have listed important Problems on Binary Tree which you must practice for Coding Interviews and listed introductory and background topics on Binary Tree as well. You must bookmark this page and practice all problems listed.

Data Structures Array Interview Questions [MCQ with answers] This is the list of Interview Questions based on Array Data Structure. You must practice these Multiple Choice Questions. This will help you master Array Coding Questions for Interviews at companies like Google and Microsoft.

Data Structures Basics of R Tree R-tree is an advanced height-balanced Tree Data Structure that is widely used in production for spatial problems (like geographical map operations). We have presented the need for R Tree along with the basics of R Tree

Algorithms Array vs Linked List [Differences Explained] This article explain the differences between Array and Linked List (Array vs Linked List) in depth along with key points that will help you in deciding which one to use for a specific problem.

Algorithms Bit Array [Explained with example] Bit Array is a data structures that compactly stores Boolean values or bits in the form of an array. The bits can be 0 or 1 only. Each bit in the bit array is independent.

Data Structures Merkle Tree [Explained] Merkle tree is named after Ralph Merkle, it is a tree data structure where non-leaf nodes are a hash of its child nodes and leaf nodes are a hash of a block of data. This is an USPTO patented Algorithm.

Data Structures Cuckoo filter [Explained] A cuckoo filter is a probabilistic data structure that is used to test whether an element is a member of a set or not. It is similar to the Bloom filter.

Algorithms Implementing two stacks in one array We will demonstrate how to implement 2 stacks in one array. Both stacks are independent but use the same array. We need to make sure one stack does not interfere with the other stack and support push and pop operation accordingly.

Data Structures Applications of Binary Tree Binary Tree is the most used Tree Data Structure and is used in real life Software systems. We have listed applications of Binary Tree and its variants.

Algorithms Implementing Priority Queue using Linked List We demonstrated the approach to Implement a Priority Queue using Linked List and support all operations like push and pop efficiently.

Algorithms Maximal Rectangle problem (using Monotonic queue) We have solved the maximal rectangle problem using Monotonic queue. In this problem we are given a matrix consisting of only 0's and 1's, we need to find the largest rectangle consisting of only 1's and return its area.

Algorithms Monotonic Queue (with Daily Temperatures & Largest Rectangle in Histogram) Monotonic queue is a data structure where the data is entirely in non-decreasing order or entirely in non-increasing order. It is generally used for optimizing dynamic programming techniques.

Algorithms Reverse a Stack The objective of this article is to explore various approaches that can be used to reverse the given stack (stack is a linear data structure where insertion and deletion are made at the same end).

Problems on Binary Tree Operations in Threaded Binary Tree There are three main operations which can be done on a threaded binary tree Insert, Search and Delete operation which we have explained in depth.

Problems on Binary Tree Threaded Binary Tree Threaded binary tree is a simple binary tree but they have a speciality that null pointers of leaf node of the binary tree is set to inorder predecessor or inorder successor.

Data Structures Young Tableaus data structure Young Tableaus data structure is a unique form of matrix in which all elements of a row are in sorted order from the left to right and that of a column are in sorted order from top to bottom.

Algorithms Applications of Linked list We have covered the applications of Linked List, Circular Linked List and Doubly Linked List. We start with the basics of Linked List and then, move to applications of the different types of Linked List.

Problems on Binary Tree Find if a given Binary Tree is a Sub-Tree of another Binary Tree A sub-tree is a tree itself that is the subset of a bigger binary tree. A subtree of a node means that it is the child of that node. In this article, we will find out different ways to find out if a given binary tree is a sub-tree of another binary tree.

Problems on Binary Tree Convert Binary Tree to Threaded Binary Tree We will focus on different approaches on how to convert a normal binary tree into a threaded binary tree. We will convert our binary tree to single threaded binary tree with right pointers pointing to inorder successor (if it exists).

Problems on Binary Tree Check if a Binary Tree is Balanced by Height In this article, we have explored the algorithm to check if a Binary Tree is balanced by height or not.

Algorithms Linked List with no NULLs A Linked list is a dynamic data structure which can grow or shrink on demand. It is usually implemented using NULLs, we will consider an alternative no NULL approach and use placeholder nodes.

Algorithms Heavy Light Decomposition of tree Heavy Light Decomposition, a competitive programming algorithm is very useful in solving queries efficiently. We will see its usecase, implementation and finally solve few problems based on it.

Data Structures Soft heap Soft heap is a variant of heap data structure (priority queue). It is a powerful data structure owing to amortized constant time complexity of some basic functions.