top | item 39038007

Dynamic Tree Connectivity in Rust

1 points| schrodingerzhu | 2 years ago |github.com

1 comment

order

schrodingerzhu|2 years ago

This crate provides a data structure to handle dynamic tree connectivity. Both incremental and decremental operations are supported with amortized O(log n) time complexity.

As the underlying data structure is a Splay tree, this crate works best with the situation where the working set is relatively small.

To represent a node in the forest, one can create a handle via [Handle::new]. To connect two nodes, one can use [Handle::connect]. This will return a [Connection], which will keep the two nodes connected until it is dropped.