# Data Structures & Algorithms Concepts

## Prepare yourself for tech interview by learning Data Structures and Algorithms Concepts

###### Complexity Analysis

Complexity analysis is a technique to characterise the time taken by an algorithm with respect to input size (independent from the machine, language and compiler).

START
###### Iteration and Two Pointer Approach

Iteration is a fundamental programming idea that is commonly used in writing programs.

START
###### Recursion and Divide & Conquer Approach

Recursive thinking is an important art in programming which helps you to formulate the solution of a problem via the solution of its smaller subproblems.

START
###### Array and Linked-List

Array and Linked list are used to store linear data of similar type but the major difference between them is related to their structure.

START
###### Stack and Queue

Stack and Queue are linear data structure that follows the LIFO (Last In First Out) and FIFO (First In First Out) principle respectively.

START
###### Binary Tree

A binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child.

START
###### Binary Search Tree

Binary Search Tree combine the efficiency of insertion of a Linked List and the quick search of a sorted array.

START
###### Heap and Priority Queue

A Heap is an array implementation of complete binary tree where each node satisfy the heap-property.

START
###### Hash Table

Hash Table is an important Data Structure which is used to map a given value with a particular key for faster access of elements.

START
###### Dynamic Programming

Dynamic Programming solves the problem by breaking down into smaller sub-problems, and storing the solution to each sub-problem so that each sub-problem is only solved once.

START
###### Greedy Algorithms

A greedy algorithm is a simple, intuitive algorithm that is used in optimisation problems.

START
###### Backtracking

Backtracking solves problems recursively by building a solution incrementally, one piece at a time and removing those solutions that fail to satisfy the constraints of the problem at any point of time.

START
###### Graph

Graphs are used to represent, find, analyse, and optimise connections between elements like locations, users etc.

START
###### Advanced Data Structure and Miscellaneous topics

This page will contain some of the advanced Data Structures and algorithms like B-tree, AVL Tree, Augmentation, String Matching, Sorting in linear time and Randomized Algorithms.

START

#### Connect With Your Mentors

##### Janishar Ali
Founder | IIT-BHU | 10 Yrs Exp.
##### Amit Shekhar
Founder | IIT-BHU | 10 Yrs Exp.