https://github.com/disruptek/skiplists
generic skip list implementations💃
https://github.com/disruptek/skiplists
collection data linked list nim search skip structure
Last synced: about 1 month ago
JSON representation
generic skip list implementations💃
- Host: GitHub
- URL: https://github.com/disruptek/skiplists
- Owner: disruptek
- License: mit
- Created: 2020-07-03T18:36:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-25T19:40:44.000Z (over 3 years ago)
- Last Synced: 2025-04-09T16:18:20.000Z (about 1 month ago)
- Topics: collection, data, linked, list, nim, search, skip, structure
- Language: Nim
- Homepage: https://en.wikipedia.org/wiki/Skip_list
- Size: 111 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# skiplists
[](https://github.com/disruptek/skiplists/actions?query=workflow%3ACI)
[](https://github.com/disruptek/skiplists/releases/latest)

[](#license)
[](https://www.buymeacoffee.com/disruptek)A _skip list_ is an ordered linked-list. Skip lists can be stacked such that
a shorter parent skip list can serve as an index into a larger child list. In
this implementation, such a stack is itself a skip list, as is each element.## Benefits
Varying the ratio of parent to child length trades space for speed. This
trade-off can be made dynamically while the skip list is in use and it can vary
across different regions of the skip list or even individual values. Skip lists
are friendly to concurrent modification with minimal or localized locking.For more details, [see the Wikipedia article on Skip Lists](https://en.wikipedia.org/wiki/Skip_list).
## Installation
```
$ git submodule add https://github.com/disruptek/skiplists
$ echo '--path="$config/skiplists/"' >> nim.cfg
```## Documentation
[See the documentation for the skiplists module as generated directly from the
source.](https://disruptek.github.io/skiplists/skiplists.html)## Testing
There's a test and a benchmark under `tests/`; the benchmark requires
[criterion](https://disruptek.github.io/criterion).## License
MIT