{"id":21316164,"url":"https://github.com/rajeevranjancom/datastructure_and_algorithms","last_synced_at":"2025-10-03T19:15:42.803Z","repository":{"id":232314725,"uuid":"295674945","full_name":"rajeevranjancom/DataStructure_and_Algorithms","owner":"rajeevranjancom","description":"DataStructure and Algorithms Program and Notes","archived":false,"fork":false,"pushed_at":"2021-02-09T22:57:31.000Z","size":5429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-22T10:36:40.988Z","etag":null,"topics":["algorithms","data-structures","datastructures-algorithms","datastructures-implementation","dynamic-programming","greedy-algorithms","notes","search-algorithm","shorting"],"latest_commit_sha":null,"homepage":"https://en.wikipedia.org/wiki/Algorithm","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajeevranjancom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-15T09:13:41.000Z","updated_at":"2021-02-09T22:57:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"66bdbb8a-3c2d-4e32-8c40-c0be3c010d3a","html_url":"https://github.com/rajeevranjancom/DataStructure_and_Algorithms","commit_stats":null,"previous_names":["rajeevranjancom/datastructure_and_algorithms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajeevranjancom%2FDataStructure_and_Algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajeevranjancom%2FDataStructure_and_Algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajeevranjancom%2FDataStructure_and_Algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajeevranjancom%2FDataStructure_and_Algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajeevranjancom","download_url":"https://codeload.github.com/rajeevranjancom/DataStructure_and_Algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243795918,"owners_count":20349250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-structures","datastructures-algorithms","datastructures-implementation","dynamic-programming","greedy-algorithms","notes","search-algorithm","shorting"],"created_at":"2024-11-21T18:30:17.611Z","updated_at":"2025-10-03T19:15:37.742Z","avatar_url":"https://github.com/rajeevranjancom.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DataStructure-and-Algorithms\nTopics:\n\nArray\nLinked List\nStack\nQueue\nBinary Tree\nBinary Search Tree\nHeap\nHashing\nGraph\nMatrix\nMisc\nAdvanced Data Structure\n\n\nSingly Linked List:\n\nIntroduction to Linked List\nLinked List vs Array\nLinked List Insertion\nLinked List Deletion (Deleting a given key)\nLinked List Deletion (Deleting a key at given position)\nA Programmer’s approach of looking at Array vs. Linked List\nFind Length of a Linked List (Iterative and Recursive)\nHow to write C functions that modify head pointer of a Linked List?\nSwap nodes in a linked list without swapping data\nReverse a linked list\nMerge two sorted linked lists\nMerge Sort for Linked Lists\nReverse a Linked List in groups of given size\nDetect and Remove Loop in a Linked List\nAdd two numbers represented by linked lists | Set 1\nRotate a Linked List\nGeneric Linked List in C\nCircular Linked List:\n\nCircular Linked List Introduction and Applications,\nCircular Singly Linked List Insertion\u003c\nCircular Linked List Traversal\nSplit a Circular Linked List into two halves\nSorted insert for circular linked list\nDoubly Linked List:\n\nDoubly Linked List Introduction and Insertion\nDelete a node in a Doubly Linked List\nReverse a Doubly Linked List\nThe Great Tree-List Recursion Problem.\nQuickSort on Doubly Linked List\nMerge Sort for Doubly Linked List\nAll Articles of Linked List\nQuiz on Linked List\nCoding Practice on Linked List\nRecent Articles on Linked List\n\nStack:\n\nIntroduction to Stack\nInfix to Postfix Conversion using Stack\nEvaluation of Postfix Expression\nReverse a String using Stack\nImplement two stacks in an array\nCheck for balanced parentheses in an expression\nNext Greater Element\nReverse a stack using recursion\nSort a stack using recursion\nThe Stock Span Problem\nDesign and Implement Special Stack Data Structure\nImplement Stack using Queues\nDesign a stack with operations on middle element\nHow to efficiently implement k stacks in a single array?\nSort a stack using recursion\nQuiz on Stack\nAll Articles on Stack\nCoding Practice on Stack\nRecent Articles on Stack\n\n \n\nQueue:\n\nQueue Introduction and Array Implementation\nLinked List Implementation of Queue\nApplications of Queue Data Structure\nPriority Queue Introduction\nDeque (Introduction and Applications)\nImplementation of Deque using circular array\nImplement Queue using Stacks\nFind the first circular tour that visits all petrol pumps\nMaximum of all subarrays of size k\nAn Interesting Method to Generate Binary Numbers from 1 to n\nHow to efficiently implement k Queues in a single array?\nQuiz on Queue\nAll Articles on Queue\nCoding Practice on Queue\nRecent Articles on Queue\n\n \n\nBinary Tree:\n\nBinary Tree Introduction\nBinary Tree Properties\nTypes of Binary Tree\nHandshaking Lemma and Interesting Tree Properties\nEnumeration of Binary Tree\nApplications of tree data structure\nTree Traversals\nBFS vs DFS for Binary Tree\nLevel Order Tree Traversal\nDiameter of a Binary Tree\nInorder Tree Traversal without Recursion\nInorder Tree Traversal without recursion and without stack!\nThreaded Binary Tree\nMaximum Depth or Height of a Tree\nIf you are given two traversal sequences, can you construct the binary tree?\nClone a Binary Tree with Random Pointers\nConstruct Tree from given Inorder and Preorder traversals\nMaximum width of a binary tree\nPrint nodes at k distance from root\nPrint Ancestors of a given node in Binary Tree\nCheck if a binary tree is subtree of another binary tree\nConnect nodes at same level\nQuiz on Binary Tree\nQuiz on Binary Tree Traversals\nAll articles on Binary Tree\nCoding Practice on Binary Tree\nRecent Articles on Tree\n\nBinary Search Tree:\n\n\n\nSearch and Insert in BST\nDeletion from BST\nMinimum value in a Binary Search Tree\nInorder predecessor and successor for a given key in BST\nCheck if a binary tree is BST or not\nLowest Common Ancestor in a Binary Search Tree.\nInorder Successor in Binary Search Tree\nFind k-th smallest element in BST (Order Statistics in BST)\nMerge two BSTs with limited extra space\nTwo nodes of a BST are swapped, correct the BST\nFloor and Ceil from a BST\nIn-place conversion of Sorted DLL to Balanced BST\nFind a pair with given sum in a Balanced BST\nTotal number of possible Binary Search Trees with n keys\nMerge Two Balanced Binary Search Trees\nBinary Tree to Binary Search Tree Conversion\nQuiz on Binary Search Trees\nQuiz on Balanced Binary Search Trees\nAll Articles on Binary Search Tree\nCoding Practice on Binary Search Tree\nRecent Articles on BST\n\nHeap:\n\nBinary Heap\nWhy is Binary Heap Preferred over BST for Priority Queue?\nBinomial Heap\nFibonacci Heap\nHeap Sort\nK’th Largest Element in an array\nSort an almost sorted array/\nTournament Tree (Winner Tree) and Binary Heap\nAll Articles on Heap\nQuiz on Heap\nCoding Practice on Heap\nRecent Articles on Heap\n\nHashing:\n\nHashing Introduction\nSeparate Chaining for Collision Handling\nOpen Addressing for Collision Handling\nPrint a Binary Tree in Vertical Order\nFind whether an array is subset of another array\nUnion and Intersection of two Linked Lists\nFind a pair with given sum\nCheck if a given array contains duplicate elements within k distance from each other\nFind Itinerary from a given list of tickets\nFind number of Employees Under every Employee\nQuiz on Hashing\nAll Articles on Hashing\nCoding Practice on Hashing\nRecent Articles on Hashing\n\n \n\nGraph:\n\nIntroduction, DFS and BFS:\n\nGraph and its representations\nBreadth First Traversal for a Graph\nDepth First Traversal for a Graph\nApplications of Depth First Search\nApplications of Breadth First Traversal\nDetect Cycle in a Directed Graph\nDetect Cycle in a an Undirected Graph\nDetect cycle in an undirected graph\nLongest Path in a Directed Acyclic Graph\nTopological Sorting\nCheck whether a given graph is Bipartite or not\nSnake and Ladder Problem\nMinimize Cash Flow among a given set of friends who have borrowed money from each other\nBoggle (Find all possible words in a board of characters)\nAssign directions to edges so that the directed graph remains acyclic\nAll Articles on Graph Data Structure\nQuiz on Graph\nQuiz on Graph Traversals\nQuiz on Graph Shortest Paths\nQuiz on Graph Minimum Spanning Tree\nCoding Practice on Graph\nRecent Articles on Graph\n\n \n\nAdvanced Data Structure:\n\nAdvanced Lists:\n\nMemory efficient doubly linked list\nXOR Linked List – A Memory Efficient Doubly Linked List | Set 1\nXOR Linked List – A Memory Efficient Doubly Linked List | Set 2\nSkip List | Set 1 (Introduction)\nSelf Organizing List | Set 1 (Introduction)\nUnrolled Linked List | Set 1 (Introduction)\nSegment Tree:\n\nSegment Tree | Set 1 (Sum of given range)\nSegment Tree | Set 2 (Range Minimum Query)\nLazy Propagation in Segment Tree\nPersistent Segment Tree | Set 1 (Introduction)\nAll articles on Segment Tree\nTrie:\n\nTrie | (Insert and Search)\nTrie | (Delete)\nLongest prefix matching – A Trie based solution in Java\nPrint unique rows in a given boolean matrix\nHow to Implement Reverse DNS Look Up Cache?\nHow to Implement Forward DNS Look Up Cache?\nAll Articles on Trie\nBinary Indexed Tree:\n\nBinary Indexed Tree\nTwo Dimensional Binary Indexed Tree or Fenwick Tree\nBinary Indexed Tree : Range Updates and Point Queries\nBinary Indexed Tree : Range Update and Range Queries\nAll Articles on Binary Indexed Tree\nSuffix Array and Suffix Tree:\n\nSuffix Array Introduction\nSuffix Array nLogn Algorithm\nkasai’s Algorithm for Construction of LCP array from Suffix Array\nSuffix Tree Introduction\nUkkonen’s Suffix Tree Construction – Part 1\nUkkonen’s Suffix Tree Construction – Part 2\nUkkonen’s Suffix Tree Construction – Part 3\nUkkonen’s Suffix Tree Construction – Part 4,\nUkkonen’s Suffix Tree Construction – Part 5\nUkkonen’s Suffix Tree Construction – Part 6\nGeneralized Suffix Tree\nBuild Linear Time Suffix Array using Suffix Tree\nSubstring Check\nSearching All Patterns\nLongest Repeated Substring,\nLongest Common Substring, Longest Palindromic Substring\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajeevranjancom%2Fdatastructure_and_algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajeevranjancom%2Fdatastructure_and_algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajeevranjancom%2Fdatastructure_and_algorithms/lists"}