Advanced Data StructuresLast Updated : 26 Sep, 2023ReadDiscussCoursesDSA for BeginnersLearn more about Advanced Data Structures in DSA Self Paced CoursePractice Problems on all Advanced Data StructureData Structures are used to store and manage data in an efficient and organised way for faster and easy access and modification of Data. Some of the basic data structures are Arrays, LinkedList, Stacks, Queues etc.This page will contain some of the complex and advanced Data Structures like Disjoint Sets, Self-Balancing Trees, Segment Trees, Tries etc.Topics:Advanced Listsn-ary TreeSelf-Balancing BSTsTrieSegment TreeBinary Indexed TreeSuffix Array and Suffix TreeK-Dimensional TreeDisjoint SetSome others Data StructureAdvanced Lists:Generic Linked List in CMemory efficient Doubly Linked ListXOR Linked List | Set 1XOR Linked List | Set 2Skip ListSelf-Organizing ListUnrolled Linked Listn-ary Tree:Generic Trees (N-ary Tree)Mirror of n-ary TreeDiameter of an N-ary treeDepth of an N-Ary treeHeight of n-ary tree if parent array is givenNumber of ways to traverse an N-ary treeNumber of siblings of a given Node in n-ary TreeNext Larger element in n-ary treeSerialize and Deserialize an N-ary TreeDFS for a n-ary tree (acyclic graph) represented as adjacency listSelf Balancing BSTs:AVL Tree:Introduction to AVL TreeInsertion in AVL TreeDeletion in an AVL TreeAVL with duplicate keysSplay Tree:Introduction to Splay tree data structureSearching in Splay TreeInsertion in Splay TreeB-Tree:Introduction of B-TreeInsert Operation in B-TreeDelete Operation in B-TreeRed-Black Tree:Introduction to Red-Black TreeInsertion in Red-Black TreeDeletion in Red-Black TreeScape Goat Tree and Treap:ScapeGoat Tree | (Introduction and Insertion)Treap (A Randomized Binary Search Tree)Implementation of Search, Insert and Delete in TreapTrie:Introduction to Trie – Data Structure and Algorithm TutorialsTrie | (Insert and Search)Trie | (Delete)Pattern Searching using a Trie of all SuffixesLongest Common PrefixImplement a Phone DirectoryWeighted Prefix SearchBogglePalindrome pair in an array of words (or strings)How to Implement Reverse DNS Look Up Cache?Segment Tree:Introduction to Segment Trees – Data Structure and Algorithm TutorialsRange minimum queryLazy PropagationPersistent Segment TreeRange Minimum Query (Square Root Decomposition and Sparse Table)Min-Max Range queries in arrayLCA in a binary tree using RMQIntroduction to Heavy Light DecompositionReconstructing Segment TreeLongest Common Extension / LCE using Segment TreeBinary Indexed Tree:Binary Indexed Tree or Fenwick TreeTwo Dimensional Binary Indexed Tree or Fenwick TreeBinary Indexed Tree : Range Updates and Point QueriesBinary Indexed Tree : Range Update and Range Queriesproto van Emde Boas Trees | Background and IntroductionSuffix Array and Suffix TreeSuffix Array IntroductionSuffix Tree IntroductionUkkonen’s Suffix Tree Construction – Part 1Generalized Suffix TreeSuffix Tree Application 1 – Substring CheckK-Dimensional Tree:Search and Insertion in K Dimensional treeFind minimum in K Dimensional TreeDeletion in K Dimensional TreeDisjoint Set:Disjoint Set Data StructuresIntroduction to Disjoint Set Data Structure or Union-Find AlgorithmDisjoint Set Union on TreesUnion By Rank and Path Compression in Union-Find AlgorithmSome other Data Structure:Palindromic Tree | Introduction & ImplementationTernary Search TreeInterval TreeBK-Tree | Introduction & ImplementationCartesian TreeSparse SetGomory-Hu TreePersistent Data StructureQuick Links:Trie Practice ProblemsSegment Tree Practice ProblemsBinary Indexed Tree Practice ProblemsRecomended:Learn Data Structure and Algorithms | DSA TutorialIf you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above