rajeevranjancom / DataStructure_and_Algorithms

DataStructure and Algorithms Program and Notes

Home Page:https://en.wikipedia.org/wiki/Algorithm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DataStructure-and-Algorithms

Topics:

Array Linked List Stack Queue Binary Tree Binary Search Tree Heap Hashing Graph Matrix Misc Advanced Data Structure

Singly Linked List:

Introduction to Linked List Linked List vs Array Linked List Insertion Linked List Deletion (Deleting a given key) Linked List Deletion (Deleting a key at given position) A Programmer’s approach of looking at Array vs. Linked List Find Length of a Linked List (Iterative and Recursive) How to write C functions that modify head pointer of a Linked List? Swap nodes in a linked list without swapping data Reverse a linked list Merge two sorted linked lists Merge Sort for Linked Lists Reverse a Linked List in groups of given size Detect and Remove Loop in a Linked List Add two numbers represented by linked lists | Set 1 Rotate a Linked List Generic Linked List in C Circular Linked List:

Circular Linked List Introduction and Applications, Circular Singly Linked List Insertion< Circular Linked List Traversal Split a Circular Linked List into two halves Sorted insert for circular linked list Doubly Linked List:

Doubly Linked List Introduction and Insertion Delete a node in a Doubly Linked List Reverse a Doubly Linked List The Great Tree-List Recursion Problem. QuickSort on Doubly Linked List Merge Sort for Doubly Linked List All Articles of Linked List Quiz on Linked List Coding Practice on Linked List Recent Articles on Linked List

Stack:

Introduction to Stack Infix to Postfix Conversion using Stack Evaluation of Postfix Expression Reverse a String using Stack Implement two stacks in an array Check for balanced parentheses in an expression Next Greater Element Reverse a stack using recursion Sort a stack using recursion The Stock Span Problem Design and Implement Special Stack Data Structure Implement Stack using Queues Design a stack with operations on middle element How to efficiently implement k stacks in a single array? Sort a stack using recursion Quiz on Stack All Articles on Stack Coding Practice on Stack Recent Articles on Stack

Queue:

Queue Introduction and Array Implementation Linked List Implementation of Queue Applications of Queue Data Structure Priority Queue Introduction Deque (Introduction and Applications) Implementation of Deque using circular array Implement Queue using Stacks Find the first circular tour that visits all petrol pumps Maximum of all subarrays of size k An Interesting Method to Generate Binary Numbers from 1 to n How to efficiently implement k Queues in a single array? Quiz on Queue All Articles on Queue Coding Practice on Queue Recent Articles on Queue

Binary Tree:

Binary Tree Introduction Binary Tree Properties Types of Binary Tree Handshaking Lemma and Interesting Tree Properties Enumeration of Binary Tree Applications of tree data structure Tree Traversals BFS vs DFS for Binary Tree Level Order Tree Traversal Diameter of a Binary Tree Inorder Tree Traversal without Recursion Inorder Tree Traversal without recursion and without stack! Threaded Binary Tree Maximum Depth or Height of a Tree If you are given two traversal sequences, can you construct the binary tree? Clone a Binary Tree with Random Pointers Construct Tree from given Inorder and Preorder traversals Maximum width of a binary tree Print nodes at k distance from root Print Ancestors of a given node in Binary Tree Check if a binary tree is subtree of another binary tree Connect nodes at same level Quiz on Binary Tree Quiz on Binary Tree Traversals All articles on Binary Tree Coding Practice on Binary Tree Recent Articles on Tree

Binary Search Tree:

Search and Insert in BST Deletion from BST Minimum value in a Binary Search Tree Inorder predecessor and successor for a given key in BST Check if a binary tree is BST or not Lowest Common Ancestor in a Binary Search Tree. Inorder Successor in Binary Search Tree Find k-th smallest element in BST (Order Statistics in BST) Merge two BSTs with limited extra space Two nodes of a BST are swapped, correct the BST Floor and Ceil from a BST In-place conversion of Sorted DLL to Balanced BST Find a pair with given sum in a Balanced BST Total number of possible Binary Search Trees with n keys Merge Two Balanced Binary Search Trees Binary Tree to Binary Search Tree Conversion Quiz on Binary Search Trees Quiz on Balanced Binary Search Trees All Articles on Binary Search Tree Coding Practice on Binary Search Tree Recent Articles on BST

Heap:

Binary Heap Why is Binary Heap Preferred over BST for Priority Queue? Binomial Heap Fibonacci Heap Heap Sort K’th Largest Element in an array Sort an almost sorted array/ Tournament Tree (Winner Tree) and Binary Heap All Articles on Heap Quiz on Heap Coding Practice on Heap Recent Articles on Heap

Hashing:

Hashing Introduction Separate Chaining for Collision Handling Open Addressing for Collision Handling Print a Binary Tree in Vertical Order Find whether an array is subset of another array Union and Intersection of two Linked Lists Find a pair with given sum Check if a given array contains duplicate elements within k distance from each other Find Itinerary from a given list of tickets Find number of Employees Under every Employee Quiz on Hashing All Articles on Hashing Coding Practice on Hashing Recent Articles on Hashing

Graph:

Introduction, DFS and BFS:

Graph and its representations Breadth First Traversal for a Graph Depth First Traversal for a Graph Applications of Depth First Search Applications of Breadth First Traversal Detect Cycle in a Directed Graph Detect Cycle in a an Undirected Graph Detect cycle in an undirected graph Longest Path in a Directed Acyclic Graph Topological Sorting Check whether a given graph is Bipartite or not Snake and Ladder Problem Minimize Cash Flow among a given set of friends who have borrowed money from each other Boggle (Find all possible words in a board of characters) Assign directions to edges so that the directed graph remains acyclic All Articles on Graph Data Structure Quiz on Graph Quiz on Graph Traversals Quiz on Graph Shortest Paths Quiz on Graph Minimum Spanning Tree Coding Practice on Graph Recent Articles on Graph

Advanced Data Structure:

Advanced Lists:

Memory efficient doubly linked list XOR Linked List – A Memory Efficient Doubly Linked List | Set 1 XOR Linked List – A Memory Efficient Doubly Linked List | Set 2 Skip List | Set 1 (Introduction) Self Organizing List | Set 1 (Introduction) Unrolled Linked List | Set 1 (Introduction) Segment Tree:

Segment Tree | Set 1 (Sum of given range) Segment Tree | Set 2 (Range Minimum Query) Lazy Propagation in Segment Tree Persistent Segment Tree | Set 1 (Introduction) All articles on Segment Tree Trie:

Trie | (Insert and Search) Trie | (Delete) Longest prefix matching – A Trie based solution in Java Print unique rows in a given boolean matrix How to Implement Reverse DNS Look Up Cache? How to Implement Forward DNS Look Up Cache? All Articles on Trie Binary Indexed Tree:

Binary Indexed Tree Two Dimensional Binary Indexed Tree or Fenwick Tree Binary Indexed Tree : Range Updates and Point Queries Binary Indexed Tree : Range Update and Range Queries All Articles on Binary Indexed Tree Suffix Array and Suffix Tree:

Suffix Array Introduction Suffix Array nLogn Algorithm kasai’s Algorithm for Construction of LCP array from Suffix Array Suffix Tree Introduction Ukkonen’s Suffix Tree Construction – Part 1 Ukkonen’s Suffix Tree Construction – Part 2 Ukkonen’s Suffix Tree Construction – Part 3 Ukkonen’s Suffix Tree Construction – Part 4, Ukkonen’s Suffix Tree Construction – Part 5 Ukkonen’s Suffix Tree Construction – Part 6 Generalized Suffix Tree Build Linear Time Suffix Array using Suffix Tree Substring Check Searching All Patterns Longest Repeated Substring, Longest Common Substring, Longest Palindromic Substring