-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Eugene Lazutkin edited this page Jun 4, 2024
·
28 revisions
After implementing list-based structures countless times, I finally decided to write them down as an open source project.
The toolkit deals with lists, related data structures and their practical applications.
A list is a simple yet versatile data structure with a lot of possible design decisions. I suggest to skim over the wiki in the following order:
- Backgrounder — general concepts, their analysis and design decisions. A must read!
- Concepts: list API — a conceptual API for singly and doubly linked lists. A must read!
- Concepts: pointers — a concept of pointers to list nodes and why they are needed.
- Concepts: ranges — a concept of node ranges.
- Concepts: external list API — external (headless) lists and their uses.
- Concepts: value list API — value lists.
A doubly linked list is the most flexible data structure. The API is described in the following documents:
- Foundation — the foundational classes and methods of the implementation.
- Lists — the hosted list classes and methods.
- Pointers — the pointers API for doubly-linked lists.
- External lists — the external headless lists API.
A singly linked list is the minimalist data structure yet the most performant. The API is described in the following documents:
- Foundation — the foundational classes and methods of the implementation.
- Lists — the hosted list classes and methods.
- Pointers — the pointers API for singly-linked lists.
- External lists — the external headless lists API.
Concepts
DLL: doubly linked lists
SLL: singly linked lists
Unrolled list
List utilities
Caches
Heaps
Queue, Stack, and Deque
Trees
Skip list
Timer wheel
Free list