unsafe_next_neighbor¶
-
inline std::pair<node_type, label_type> libsemigroups::ActionDigraph::unsafe_next_neighbor(node_type v, label_type i) const¶
Get the next neighbor of a node that doesn’t equal libsemigroups::UNDEFINED.
This function guarantees not to throw a LibsemigroupsException.
- Complexity
At worst \(O(n)\) where \(n\) equals out_degree().
- See
Warning
This function is unsafe because it is not verified that the parameter
v
represents a node ofthis
.- Parameters
v – the node
i – the label
- Returns
Returns a std::pair
x
where:x.second
is the minimum value in the range \([i, out_degree())\) such that neighbor(v, x.second) is not equal to libsemigroups::UNDEFINED; andx.first
is adjacent tov
via an edge labelledx.second
; If neighbor(v, i) equals libsemigroups::UNDEFINED for every value in the range \([i, out_degree())\), thenx.first
andx.second
equal libsemigroups::UNDEFINED.