pub struct Trie { /* private fields */ }
Implementations§
Source§impl Trie
impl Trie
pub fn new(char_size: usize) -> Self
pub fn with_capacity(char_size: usize, capacity: usize) -> Self
Sourcepub fn insert_once_at(&mut self, node: usize, ch: usize) -> usize
pub fn insert_once_at(&mut self, node: usize, ch: usize) -> usize
Examples found in repository?
crates/competitive/src/data_structure/trie.rs (line 43)
36 pub fn insert_at<I>(&mut self, mut node: usize, iter: I) -> Vec<usize>
37 where
38 I: IntoIterator<Item = usize>,
39 {
40 let mut path = Vec::new();
41 for ch in iter.into_iter() {
42 path.push(node);
43 node = self.insert_once_at(node, ch);
44 }
45 path.push(node);
46 path
47 }
Sourcepub fn insert_at<I>(&mut self, node: usize, iter: I) -> Vec<usize>where
I: IntoIterator<Item = usize>,
pub fn insert_at<I>(&mut self, node: usize, iter: I) -> Vec<usize>where
I: IntoIterator<Item = usize>,
pub fn insert<I>(&mut self, iter: I) -> Vec<usize>where
I: IntoIterator<Item = usize>,
Sourcepub fn find_at<I>(&self, node: usize, iter: I) -> Result<usize, usize>where
I: IntoIterator<Item = usize>,
pub fn find_at<I>(&self, node: usize, iter: I) -> Result<usize, usize>where
I: IntoIterator<Item = usize>,
pub fn find<I>(&self, iter: I) -> Result<usize, usize>where
I: IntoIterator<Item = usize>,
Sourcepub fn next_node(&self, node: usize, ch: usize) -> Option<usize>
pub fn next_node(&self, node: usize, ch: usize) -> Option<usize>
Examples found in repository?
crates/competitive/src/data_structure/trie.rs (line 89)
84 pub fn edges(&self) -> Vec<(usize, usize)> {
85 let mut edges = Vec::with_capacity(self.node_size - 1);
86 let mut stack = vec![0usize];
87 while let Some(node) = stack.pop() {
88 for ch in (0..self.char_size).rev() {
89 if let Some(nnode) = self.next_node(node, ch) {
90 edges.push((node, nnode));
91 stack.push(nnode);
92 }
93 }
94 }
95 edges
96 }
pub fn node_size(&self) -> usize
pub fn edges(&self) -> Vec<(usize, usize)>
pub fn build_failure<M>(&mut self, dp: &mut [M::T])where
M: Monoid,
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Trie
impl RefUnwindSafe for Trie
impl Send for Trie
impl Sync for Trie
impl Unpin for Trie
impl UnwindSafe for Trie
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more