This is a task list focused on Data Structure topics for OpenGenus IQ and Cosmos
See this guide to understand how to use this task list.
Message @aditya if you need any help. You may work on uncompleted tasks, improve existing work and add questions for a completed task. See published posts here
Following is a small collection of scopes you may contribute to:
Basic data structures
- Array (assigned)
- Dynamic array / arraylist
- Linked List
- Singly Linked List
- Doubly Linked List (done by @la27)
- Stack
- Stack (assigned to @shreyagupta30)
- Stack using queue (assigned to @Vaibhav)
- Queue
- Queue (done by @GP1999)
- Circular queue (done by @karna98)
- Deque
- Priority queue (assigned to @saddhu1005)
- Queue using stack (done by @Robotjelly123)
- Queue using Linked List (done by @code_stromer)
- Binary Tree
- Hash Map
- Hash Map (assigned to @cat)
- Collision handling techniques in Hash map
Intermediate data structures
- Binary Search tree (assigned to @Vaibhav)
- maximum or minimum element in a binary search tree (assigned to @phm_123)
- Heap
- Min/ Max Heap (assigned to @coderquill)
- Binomial Heap (assigned to @saddhu1005)
- Fibonacci Heap (assigned at @rkrohitkmr93)
- Leftist Heap (assigned to @nisarg1499)
- Soft Heap
- Pairing Heap (assigned to @nisarg1499)
- Shadow Heap
- Min-Max heap (assigned to @coderquill)
- Self balancing binary tree:
- Bitmask (assigned to @ajaybechara1)
- Adjacency matrix
- Adjacency list
- Lowest Common Ancestor in a Binary Tree (assigned to @Meds)
- Union Find (assigned to @saddhu1005)
- Trie
- Range minimum query
- Native approach (assigned to @siddharth)
- Square root decomposition (assigned to @siddharth)
- Segment tree (assigned to @siddharth)
- Fenwick tree
- Sparse table
- Cartesian tree
- Range addition query (assigned to @siddharth)
- Native approach (assigned to @siddharth)
- Square root decomposition (assigned to @siddharth)
- Segment tree (assigned to @siddharth)
- Fenwick tree
- Sparse table
- Cartesian tree
- Finding the number of elements less than a given number in a given range
- Fenwick tree (assigned to @sagar)
- Number of distinct elements in a index range
- Square Root Decomposition
- Sparse tree
- Sparse table (assigned to @prashant-mahanta)
- Binary lifting in Lowest Common Ancestor
- Fractional cascading (binary search)
- Longest Common Prefix array (LCP)
- Prefix Sum Array
- Rope Data Structure (assigned to @Ishmeetk21)
- Gap buffer
- Zipper
- Piece table
- order statistics tree
- Patracia tree
- Policy based data structures (C++)
Advanced data structures
- XOR Linked list (done by @la27)
- XOR Linked list in Java
- Using XOR Linked list to implement backward and forward navigation of visited web pages
- Using XOR Linked list to implement Most Recently Used list
- Radix tree (assigned to @FR4NKESTI3N)
- K dimensional tree (assigned to @FR4NKESTI3N)
- Implicit K D tree
- KDB tree
- R tree
- M tree
- Range tree
- Interval tree
- Ternary Search Tree
- Cartesian Tree
- Palindromic Tree
- Segment tree
- Segment Tree
- 2D Segment Tree
- Lazy propogation in Segment tree
- Persistent segment tree (assigned to @siddharth)
- Heavy light decomposition in Segment tree
- Li Chao tree
- Fenwick Tree / Binary Index Tree (BIT)
- Octree (assigned)
- Quad Trees (assigned)
- Quad edge
- Winged edge
- Anagram Trees
- X fast tries
- Y fast tries
- Van Emde Boas Trees
- Sqrt Tree
- Suffix array
- Suffix tree
- Ukkonen’s Suffix Tree algorithm
- ScapeGoat Tree
- Burkhard Keller Tree
- Rainbow table
- Finger tree
- Wavelet tree
Probabilistic data structures
- Bloom filter
- Count Min sketch
- Skip list (assigned to @Robotjelly123)
- Treap
- Quotient filter
- Rapidly-exploring Random Tree (RRT)
Kinetic data structure
- Kinetic heap
- Kinetic sorted list
- Kinetic minimum spanning tree
- Kinetic tournament/ priority queue
Problems / Applications of above data structures
- Infix to postfix using Stack (assigned to @piyush26c)
- Count inversions in an array using Fenwick Tree (assigned to @akshay_103)
- postfix to infix using stack (assigned to @akshay_103)