# 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 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
##### Our Learners Work At       