pub struct RecurQueue<P: Params>(/* private fields */);Expand description
Queue of lazily-generated pairs of nodes that must next be compared pairwise. The size is limited only by available memory. Specifies use of this.
Does breadth-first traversals. Typically used when it is likely that the input graphs will be deeper than they are wide. Great depth can be handled with very little memory usage, but great width can cause excessive memory usage.
(If, instead, you want to limit how much a recursion-queue can grow, you must impl
RecurMode for your own type that does that and use it with the
generic API.)
Trait Implementations§
Source§impl<P: Params> Default for RecurQueue<P>
impl<P: Params> Default for RecurQueue<P>
Source§fn default() -> Self
fn default() -> Self
Create a new instance with capacity
P::INITIAL_CAPACITY.
Source§impl<P: Params> From<CallStack> for RecurQueue<P>
Enables the call-stack to be used for the precheck and the vector-queue for the
interleave, if desired.
impl<P: Params> From<CallStack> for RecurQueue<P>
Enables the call-stack to be used for the precheck and the vector-queue for the interleave, if desired.
Source§impl<E, V> RecurMode<E> for RecurQueue<V>
Enables RecurQueue to be used with the algorithm.
impl<E, V> RecurMode<E> for RecurQueue<V>
Enables RecurQueue to be used with the algorithm.
Source§fn reset(self) -> Self
fn reset(self) -> Self
An aborted precheck, that uses RecurQueue, might have left some elements, so we
must reset before doing the interleave using the same RecurQueue.
Source§type Error = Infallible
type Error = Infallible
Source§fn recur(
it: &mut Equiv<E>,
edges_iter: EdgesIter<E::Node>,
) -> Result<<E::Node as Node>::Cmp, Self::Error>
fn recur( it: &mut Equiv<E>, edges_iter: EdgesIter<E::Node>, ) -> Result<<E::Node as Node>::Cmp, Self::Error>
Source§fn next(&mut self) -> Option<CounterpartsResult<E::Node>>
fn next(&mut self) -> Option<CounterpartsResult<E::Node>>
Self::recur. Read more