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.

Data Structures Augmented Data Structures Augmenting a data structure (or Augmented Data Structure) means using a existing data structure and making some changes in that data structure to fit our needs. We have explained the idea of augmented data structure with examples.

Problems on Binary Tree Designing a Binary Search Tree with no NULLs A Binary Search Tree (BST) is usually implemented using NULLs in C or C++. This article explores an alternative approach of using placeholder nodes. Here the Binary Search Tree will be implemented in C++.

Data Structures Optimizations in Union Find Data Structure Union find data structure is also called disjoined set data structure as it a collection of disjoined subsets. There are different optimizations such as union by rank/ size, path compression and much more.

Data Structures Skew Heap We have explained Skew heap. Skew heap is a special variant of Leftist heap. Leftist heap is in turn, a variant of binary heap. We have given an overview of binary heaps, then discussed leftist heaps and finally talked about skew heaps.

Software Engineering Design Graph using OOP concepts in Java You are going to learn to design and implement the graph data structure using OOP (Object Oriented Programming) Concepts. We will implement in Java but the ideas are applicable in any language.

Problems on Binary Tree Finding Diameter of a Tree using DFS In this article, we will be discussing how to find the diameter of a tree or graph using Depth First Search (DFS).

Problems on Binary Tree Diameter of a Binary Tree In this problem, we are given input as the reference to the root of a binary tree. We need to find the diameter of the tree. We find the diameter using recursion and Depth First Search (DFS).