# Data Structures [[Software Engineering]] [[Algorithms]] A data structure is a specialized format for organizing, processing, retrieving and storing data. They are especially important for [[Databases]] and [[Search Engine]]. ## Data structures - [[Graphs]] ### Search - [[Skip List]] - [[Index List]] - [[Red Black Trees]] - [[Binary Trees]] - [[kd-trees]] - [[Binary Space Partitioning]] ### Hashing - [[Hash table]] - [[Hash Index]] - [[Consistent Hashing]] - [[Perfect Hash Table]] - [[Locality Sensitive Hashing]] ### Compression - [[Roaring bitmaps]] ### Functional Data Structures - [[Functional Data Structures]] ## Concurrency - [[golang channels]] ## Courses - [[COURSE - Stanford - The Modern Algorithmic Toolbox]] - [Lectures in Advanced Data Structures (6.851)](https://courses.csail.mit.edu/6.851/fall17/lectures/) by [[Erik Demaine]] ## Books - [[BOOK - The Algorithm Design Manual - Steven S Skiena]] - [[BOOK - Introduction to Algorithms third edition - Thomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein]] My favourite algorithms book: - [[BOOK - Algorithm Design Pearson New International Edition - Jon Kleinberg Eva Tardos]] - [[BOOK - Purely Functional Data Structures - Chris Okasaki]]