Trait SuffixTree

Source
pub trait SuffixTree<T> {
    // Required methods
    fn root(&self) -> &NodeID;
    fn is_leaf(&self, node_id: &NodeID) -> bool;
    fn get_node_child(
        &self,
        node_id: &NodeID,
        edge_label: &T,
    ) -> Option<&NodeID>;
    fn get_node_parent(&self, node_id: &NodeID) -> Option<&NodeID>;
    fn get_node_depth(&self, node_id: &NodeID) -> usize;
    fn get_suffix_link(&self, node_id: &NodeID) -> &usize;
    fn get_node_label<'a>(&'a self, node_id: &'a NodeID) -> Vec<T>;
    fn get_node_path_label(&self, node_id: &NodeID) -> &[T];
    fn get_node_path_pre(&self, node_id: &NodeID) -> LinkedList<NodeID>;
    fn get_node_path_post(&self, node_id: &NodeID) -> LinkedList<NodeID>;
    fn is_suffix(&self, s: &[T]) -> bool;
}

Required Methods§

Source

fn root(&self) -> &NodeID

Source

fn is_leaf(&self, node_id: &NodeID) -> bool

Source

fn get_node_child(&self, node_id: &NodeID, edge_label: &T) -> Option<&NodeID>

Source

fn get_node_parent(&self, node_id: &NodeID) -> Option<&NodeID>

Source

fn get_node_depth(&self, node_id: &NodeID) -> usize

Source

fn get_node_label<'a>(&'a self, node_id: &'a NodeID) -> Vec<T>

Source

fn get_node_path_label(&self, node_id: &NodeID) -> &[T]

Source

fn get_node_path_pre(&self, node_id: &NodeID) -> LinkedList<NodeID>

Source

fn get_node_path_post(&self, node_id: &NodeID) -> LinkedList<NodeID>

Source

fn is_suffix(&self, s: &[T]) -> bool

Checks if the input slice is a suffix of any of the strings present in the tree.

Implementors§

Source§

impl<T, U> SuffixTree<T> for KGST<T, U>