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).

Algorithms Algorithm to detect and remove loop in a Linked List Given a Linked list, find out whether it contains a loop or not. If it does, then remove the loop and make the last node point to NULL.

Problems on Binary Tree Counting subtrees where nodes sum to a specific value We will learn about counting the subtrees in a binary tree whose nodes sum to a given value. We will be trying different methods to solve our problem We will solve it in O(N) time complexity and O(H) space complexity where N is number of nodes and H is the height of the tree.

Algorithms Algorithm to check if a linked list is sorted In this article, we have explored an algorithm to check if a given Linked List is sorted or not in linear time O(N). It takes constant space O(1).

Algorithms Check if Linked List is Empty Checking if the given Linked List is empty depends on the ways Linked List has been formed (with or without root). We have covered both approaches.

Algorithms Check whether a Singly Linked List is Palindrome or not Linked List can be palindrome if they have the same order when it traverse from forward as well as backward. This is solved using three methods: using stack, string and by reversing the list.

Algorithms Transpose Graph In this article, we will explore the idea of Transpose Graph along with the basics of Graph Data Structures. We have presented an algorithm to get the transpose of a graph as well.

Problems on Binary Tree Find number of Universal Value subtrees in a Binary Tree In this article, we will be working on finding number of subtrees whose nodes have same value, called universal value subtree or simply univalue subtree.

Algorithms Different collision resolution techniques in Hashing In this article, we have explored the idea of collision in hashing and explored different collision resolution techniques such as open hashing, closed hashing, linear probing, quadratic probing and double hashing.