You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
ArrayLinked ListStackQueueBinary TreeBinary Search TreeHeapHashingGraphMatrixMiscAdvanced Data Structure
Singly Linked List:
Introduction to Linked ListLinked List vs ArrayLinked List InsertionLinked 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 ListFind 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 dataReverse a linked listMerge two sorted linked listsMerge Sort for Linked ListsReverse a Linked List in groups of given sizeDetect and Remove Loop in a Linked ListAdd two numbers represented by linked lists | Set 1Rotate a Linked ListGeneric Linked List in CCircular Linked List:
Circular Linked List Introduction and Applications,Circular Singly Linked List Insertion<Circular Linked List TraversalSplit a Circular Linked List into two halvesSorted insert for circular linked listDoubly Linked List:
Doubly Linked List Introduction and InsertionDelete a node in a Doubly Linked ListReverse a Doubly Linked ListThe Great Tree-List Recursion Problem.QuickSort on Doubly Linked ListMerge Sort for Doubly Linked ListAll Articles of Linked ListQuiz on Linked ListCoding Practice on Linked ListRecent Articles on Linked List
Stack:
Introduction to StackInfix to Postfix Conversion using StackEvaluation of Postfix ExpressionReverse a String using StackImplement two stacks in an arrayCheck for balanced parentheses in an expressionNext Greater ElementReverse a stack using recursionSort a stack using recursionThe Stock Span ProblemDesign and Implement Special Stack Data StructureImplement Stack using QueuesDesign a stack with operations on middle elementHow to efficiently implement k stacks in a single array?Sort a stack using recursionQuiz on StackAll Articles on StackCoding Practice on StackRecent Articles on Stack
Queue:
Queue Introduction and Array ImplementationLinked List Implementation of QueueApplications of Queue Data StructurePriority Queue IntroductionDeque (Introduction and Applications)Implementation of Deque using circular arrayImplement Queue using StacksFind the first circular tour that visits all petrol pumpsMaximum of all subarrays of size kAn Interesting Method to Generate Binary Numbers from 1 to nHow to efficiently implement k Queues in a single array?Quiz on QueueAll Articles on QueueCoding Practice on QueueRecent Articles on Queue
Binary Tree:
Binary Tree IntroductionBinary Tree PropertiesTypes of Binary TreeHandshaking Lemma and Interesting Tree PropertiesEnumeration of Binary TreeApplications of tree data structureTree TraversalsBFS vs DFS for Binary TreeLevel Order Tree TraversalDiameter of a Binary TreeInorder Tree Traversal without RecursionInorder Tree Traversal without recursion and without stack!Threaded Binary TreeMaximum Depth or Height of a TreeIf you are given two traversal sequences, can you construct the binary tree?Clone a Binary Tree with Random PointersConstruct Tree from given Inorder and Preorder traversalsMaximum width of a binary treePrint nodes at k distance from rootPrint Ancestors of a given node in Binary TreeCheck if a binary tree is subtree of another binary treeConnect nodes at same levelQuiz on Binary TreeQuiz on Binary Tree TraversalsAll articles on Binary TreeCoding Practice on Binary TreeRecent Articles on Tree
Binary Search Tree:
Search and Insert in BSTDeletion from BSTMinimum value in a Binary Search TreeInorder predecessor and successor for a given key in BSTCheck if a binary tree is BST or notLowest Common Ancestor in a Binary Search Tree.Inorder Successor in Binary Search TreeFind k-th smallest element in BST (Order Statistics in BST)Merge two BSTs with limited extra spaceTwo nodes of a BST are swapped, correct the BSTFloor and Ceil from a BSTIn-place conversion of Sorted DLL to Balanced BSTFind a pair with given sum in a Balanced BSTTotal number of possible Binary Search Trees with n keysMerge Two Balanced Binary Search TreesBinary Tree to Binary Search Tree ConversionQuiz on Binary Search TreesQuiz on Balanced Binary Search TreesAll Articles on Binary Search TreeCoding Practice on Binary Search TreeRecent Articles on BST
Heap:
Binary HeapWhy is Binary Heap Preferred over BST for Priority Queue?Binomial HeapFibonacci HeapHeap SortK’th Largest Element in an arraySort an almost sorted array/Tournament Tree (Winner Tree) and Binary HeapAll Articles on HeapQuiz on HeapCoding Practice on HeapRecent Articles on Heap
Hashing:
Hashing IntroductionSeparate Chaining for Collision HandlingOpen Addressing for Collision HandlingPrint a Binary Tree in Vertical OrderFind whether an array is subset of another arrayUnion and Intersection of two Linked ListsFind a pair with given sumCheck if a given array contains duplicate elements within k distance from each otherFind Itinerary from a given list of ticketsFind number of Employees Under every EmployeeQuiz on HashingAll Articles on HashingCoding Practice on HashingRecent Articles on Hashing
Graph:
Introduction, DFS and BFS:
Graph and its representationsBreadth First Traversal for a GraphDepth First Traversal for a GraphApplications of Depth First SearchApplications of Breadth First TraversalDetect Cycle in a Directed GraphDetect Cycle in a an Undirected GraphDetect cycle in an undirected graphLongest Path in a Directed Acyclic GraphTopological SortingCheck whether a given graph is Bipartite or notSnake and Ladder ProblemMinimize Cash Flow among a given set of friends who have borrowed money from each otherBoggle (Find all possible words in a board of characters)Assign directions to edges so that the directed graph remains acyclicAll Articles on Graph Data StructureQuiz on GraphQuiz on Graph TraversalsQuiz on Graph Shortest PathsQuiz on Graph Minimum Spanning TreeCoding Practice on GraphRecent Articles on Graph
Advanced Data Structure:
Advanced Lists:
Memory efficient doubly linked listXOR Linked List – A Memory Efficient Doubly Linked List | Set 1XOR Linked List – A Memory Efficient Doubly Linked List | Set 2Skip 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 TreePersistent Segment Tree | Set 1 (Introduction)All articles on Segment TreeTrie:
Trie | (Insert and Search)Trie | (Delete)Longest prefix matching – A Trie based solution in JavaPrint unique rows in a given boolean matrixHow to Implement Reverse DNS Look Up Cache?How to Implement Forward DNS Look Up Cache?All Articles on TrieBinary Indexed Tree:
Binary Indexed TreeTwo Dimensional Binary Indexed Tree or Fenwick TreeBinary Indexed Tree : Range Updates and Point QueriesBinary Indexed Tree : Range Update and Range QueriesAll Articles on Binary Indexed TreeSuffix Array and Suffix Tree:
Suffix Array IntroductionSuffix Array nLogn Algorithmkasai’s Algorithm for Construction of LCP array from Suffix ArraySuffix Tree IntroductionUkkonen’s Suffix Tree Construction – Part 1Ukkonen’s Suffix Tree Construction – Part 2Ukkonen’s Suffix Tree Construction – Part 3Ukkonen’s Suffix Tree Construction – Part 4,Ukkonen’s Suffix Tree Construction – Part 5Ukkonen’s Suffix Tree Construction – Part 6Generalized Suffix TreeBuild Linear Time Suffix Array using Suffix TreeSubstring CheckSearching All PatternsLongest Repeated Substring,Longest Common Substring, Longest Palindromic Substring