# 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]]