# DataStructure Tutorial

Data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. Data structures are classified into two types - Linear data structures and non-linear data structures.

In a linear data structure elements are accessed in sequential order but it is not compulsory to store all elements sequentially. For example, Linked Lists, Stacks and Queues.

In a non-linear data structure the elements are stored/accessed in a non-linear order. For example, Trees and Graphs

## Different Sorting Algorithms

By Dhiraj
, 07 March, 2020
*10K*

In this article, we will be discussing different sorting techniques and algorithms with examples that are most frequently used in computer science. We will discuss Bubble sort, Selection Sort, Insert...

## Hashing Techniques

By Dhiraj
, 07 April, 2020
*4K*

In this article, we will discuss about different hashing techniques and collision conditions. We will list out different collision resolution techniques and discuss about closed addressing technique....

## Custom Stack Implementation in Java

By Dhiraj
, 10 March, 2020
*22K*

In this article, we will be discussing implementing stack data structure in Java and perform multiple stack operations such as pop(),push() and peek(). We will also take a look at the time complexity...

## Custom Queue Implementation in Java

By Dhiraj
, 10 March, 2020
*20K*

In this article, we will create a custom implementation of Queue data structure in Java. In the course, we will perform different queue operations such as enQueue(), deQueue(), etc. We will also check...

## Blocking Queue Implementation in Java

By Dhiraj
, 20 March, 2020
*20K*

In this article, we will be creating a custom implementation of Blocking Queue in Java. We will provide a LinkedList implementation of it and perform multiple operations such as put() and take()....

## Custom LinkedList Implementation in Java

By Dhiraj
, 10 March, 2020
*42K*

In this article, we will be creating a LinkedList implementation in Java and perform several operations such as insert a node at the end, insert a node at a given index, delete a node, insert the head...

## Doubly Linked List Custom Implementation in Java

By Dhiraj
, 16 March, 2020
*8K*

Let us discuss how can we implement doubly linked lists in Java. We will provide a custom implementation of doubly-linked lists and perform multiple operations such as insertion, deletion, and travers...

## Circular Linked List Implementation In Java

By Dhiraj
, 24 May, 2020
*16K*

In this article, we will discuss how to implement the circular linked list in Java and its advantages. We will also see how to perform different operations such as Insertion, Deletion, and Search....

## Reverse a Linked List

By Dhiraj
, 26 May, 2020
*4K*

In this article, we will discuss 2 different ways to reverse a given linked list using an iterative and recursive way in Java....

## Add Two Numbers Represented by Linked Lists

By Dhiraj
, 27 May, 2020
*8K*

In this article, we will discuss how two numbers represented as linked lists can be added together and store the result in a new linked list....

## Find the Intersection Node of two Linked Lists

By Dhiraj
, 29 May, 2020
*2K*

In this article, we will implement the algorithm to find the intersection node of two given linked lists in Java. The intersection node is the common merging node between two given linked lists....

## Tree Implementation in Java

By Dhiraj
, 11 March, 2020
*12K*

In this article, we will provide a custom implementation of Tree data structure in Java. We will discuss a special case of Tree, i.e.- Binary Search Tree(BST). We will perform multiple tree operations...

## 3 Ways of Level Order Traversal of Binary Tree

By Dhiraj
, 18 April, 2020
*17K*

In this article, we will discuss 3 different techniques for Level Order Traversal of a binary tree. This technique can be used to find the left and right view of the tree....

## Left and Right View of Binary Tree in Java

By Dhiraj
, 26 April, 2020
*3K*

In this article, we print the left view of a binary tree with level order traversal by using the Queue data structure....

## Top and Bottom View of Binary Tree

By Dhiraj
, 27 April, 2020
*10K*

In this article, we will print the top and bottom view of a binary tree. For this, we need to perform vertical order traversal on the tree and then we can easily find out the top and bottom view of it...

## Least Common Ancestor in a Binary Tree

By Dhiraj
, 27 April, 2020
*1K*

In this article, we will implement the algorithm to find the least common ancestor(LCA) of two nodes in a given binary tree in Java. LCA of two nodes is the first common ancestor node of given nodes....

## Distance Between Two Nodes of a Binary Tree

By Dhiraj
, 29 April, 2020
*5K*

In this article, we will implement the algorithm to find the distance between any two nodes in a binary tree using Java. The basic of this algorithm is to first find the lowest common ancestor of give...

## Print Path From Root to the Given Node of a Binary Tree

By Dhiraj
, 30 April, 2020
*5K*

In this article, we will implement the algorithm to print the path from the root node to any given node. We will be using a stack to keep a track of the path and implement the algorithm in Java....

## Check if a Binary Tree is Valid BST or not

By Dhiraj
, 05 May, 2020
*6K*

In this article, we will implement the algorithm to check if a given binary tree is a valid binary search(BST) tree or not. We will use a recursive approach in Java to implement the algorithm....

## Check if a binary tree is subtree of another binary tree

By Dhiraj
, 06 May, 2020
*1K*

In this article, we will implement the algorithm to check if a given binary tree is the subtree of another binary tree in Java....

## Find Mirror Image of a Binary Tree

By Dhiraj
, 10 May, 2020
*5K*

n this article, we will implement the algorithm to find the mirror image of a given binary tree in Java....

## Graph Implementation in Java

By Dhiraj
, 21 March, 2020
*22K*

In this article, we will discuss how to implement a Graph data structure in Java using the adjacency list representation of Graph. We will perform insert and search operations. We will implement the B...

## Find Kth Largest Element in Array

By Dhiraj
, 11 May, 2020
*20K*

Algorithm implementation to find the kth largest and smallest element using heap in Java....

## Dijkstra Algorithm Implementation in Java

By Dhiraj
, 06 April, 2020
*24K*

In this article, we will discuss about how we can implement Dijkstra algorithm in Java to find the shortest paths between nodes in a graph....

## Sort a Nearly Sorted Array(K Sorted Array)

By Dhiraj
, 23 May, 2020
*7K*

In this article, we will discuss sorting a nearly sorted or K sorted array using Heap data structure in Java....

## Trie DataStructure Implementation in Java

By Dhiraj
, 25 May, 2020
*6K*

In this article, we will discuss the Trie data structure and implement it in Java and perform the search operations....

## Getting started with Dynamic Programming

By Dhiraj
, 26 June, 2020
*2K*

In this article, we will cover the core concepts of dynamic programming(DP) and discuss all the fundamentals required to get started with it....