Expand description
This crate provides traits to describe operations on EVAL-LINK-UPDATE data structures (similar to operations defined by Tarjan in “Applications of Path Compression on Balanced Trees.”).
It also provides implementations of basic EVAL-LINK-UPDATE structures such as forest with path compression on evaluation (see CompressedForest
).
EVAL-LINK-UPDATE Operations
Suppose we have an associative operation ⊕. The three operations made available on forests are:
EVAL
(n)
: find the root of the tree that contains the noden
, let sayr
, and compute the product of all values on the path fromr
ton
(i.evalue(r)
⊕ … ⊕value(n)
)LINK
(n, m)
: find the root of the tree that contains the nodem
, let sayr
, and link it to the noden
(i.er
becomes a child ofn
)UPDATE
(n, v)
: find the root of the tree that contains the noden
, let sayr
, and replace its value byv
Re-exports
pub use operation::AssociativeOperation;
Modules
- Collection of basic types that define standard associative operations.
Structs
- A simple EVAL-LINK-UPDATE forest structure that performs (unbalanced) path compression.
Traits
- An EVAL-LINK-UPDATE structure.