https://github.com/kafkasl/golang-ads
Golang Advanced Data Structures
https://github.com/kafkasl/golang-ads
advanced-data-structures frequent-itemsets golang path-compression patricia-trie skip-list trie trie-structure union-find
Last synced: about 2 months ago
JSON representation
Golang Advanced Data Structures
- Host: GitHub
- URL: https://github.com/kafkasl/golang-ads
- Owner: kafkasl
- License: gpl-3.0
- Created: 2018-04-10T10:23:11.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-20T10:32:35.000Z (almost 7 years ago)
- Last Synced: 2025-02-08T05:28:22.586Z (3 months ago)
- Topics: advanced-data-structures, frequent-itemsets, golang, path-compression, patricia-trie, skip-list, trie, trie-structure, union-find
- Language: Go
- Homepage:
- Size: 940 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Golang Advanced Data Structures
### Tests
Run all the tests, examples and performance evaluations with:
`./bin/run_tests_and_examples.sh`
### Documentation
Detailed documentation and explanation of each data structure and the performance tests is available in:
`./doc/golang_ads.pdf`
### Available Structures
#### Trie
* Location: `./structures/trie`
* Description: Implements Trie Structure using as key any Go Rune (and no alphabet size required)
* Examples: Trie examples are the public examples of problem http://codeforces.com/contest/456/problem/D
* You can find the actual submission code in `./submissions/submission456D.go`#### Patricia trie
* Location: `./structures/patricia-trie`
* Description: Implements Patricia trie Structure as described in Handbook of Data Structures and Applications book.#### Union-find Set with Path Compression / with Rank
* Location: `./structures/union-find/`
* Description: Implements union-find sets. Two variants are available: one using path compression using vectors (most used and efficient); another one using rank for set-union and with pointers.
* Examples: Union-find examples are the public examples of problem https://jutge.org/problems/P94041_ca/statement and the implementation of Kruskal's minimum spanning tree algorithm
* You can find the submission code in `./submissions/submissionConnectedComponents.go`#### Skip list
* Location: `./structures/trie`
* Description: Implements a map using the skip list structure (instead of a search tree)
* Examples: `./evaluation/skip-list_performance.go` does a complexity evaluation (both time and space) of the implemented structure. Base package example just tests String() method.#### Frequent Itemsets
* Location `./structures/frequent-itemsets`
* Description: uses item lists, trie, and patricia tries to represent a frequent itemset
* Examples: `./evaluation/fis_size-tests.go` creates represents each dataset under `./data` and compares the total memory size of each one of them.