pub struct AdjacencyListGraph {
pub vsize: usize,
pub esize: usize,
pub graph: Vec<Vec<Adjacency>>,
}
Fields§
§vsize: usize
§esize: usize
§graph: Vec<Vec<Adjacency>>
Implementations§
Source§impl AdjacencyListGraph
impl AdjacencyListGraph
Sourcepub fn new(vsize: usize) -> AdjacencyListGraph
pub fn new(vsize: usize) -> AdjacencyListGraph
Examples found in repository?
crates/competitive/src/graph/adjacency_list.rs (line 66)
65 fn mscan<'a, I: Iterator<Item = &'a str>>(self, iter: &mut I) -> Option<Self::Output> {
66 let mut graph = AdjacencyListGraph::new(self.vsize);
67 let mut rest = Vec::with_capacity(self.esize);
68 for _ in 0..self.esize {
69 let (from, to) = (U::scan(iter)?, U::scan(iter)?);
70 if self.directed {
71 graph.add_edge(from, to);
72 } else {
73 graph.add_undirected_edge(from, to);
74 }
75 rest.push(T::scan(iter)?);
76 }
77 Some((graph, rest))
78 }
Sourcepub fn add_edge(&mut self, from: usize, to: usize)
pub fn add_edge(&mut self, from: usize, to: usize)
Examples found in repository?
crates/competitive/src/graph/adjacency_list.rs (line 71)
65 fn mscan<'a, I: Iterator<Item = &'a str>>(self, iter: &mut I) -> Option<Self::Output> {
66 let mut graph = AdjacencyListGraph::new(self.vsize);
67 let mut rest = Vec::with_capacity(self.esize);
68 for _ in 0..self.esize {
69 let (from, to) = (U::scan(iter)?, U::scan(iter)?);
70 if self.directed {
71 graph.add_edge(from, to);
72 } else {
73 graph.add_undirected_edge(from, to);
74 }
75 rest.push(T::scan(iter)?);
76 }
77 Some((graph, rest))
78 }
Sourcepub fn add_undirected_edge(&mut self, u: usize, v: usize)
pub fn add_undirected_edge(&mut self, u: usize, v: usize)
Examples found in repository?
crates/competitive/src/graph/adjacency_list.rs (line 73)
65 fn mscan<'a, I: Iterator<Item = &'a str>>(self, iter: &mut I) -> Option<Self::Output> {
66 let mut graph = AdjacencyListGraph::new(self.vsize);
67 let mut rest = Vec::with_capacity(self.esize);
68 for _ in 0..self.esize {
69 let (from, to) = (U::scan(iter)?, U::scan(iter)?);
70 if self.directed {
71 graph.add_edge(from, to);
72 } else {
73 graph.add_undirected_edge(from, to);
74 }
75 rest.push(T::scan(iter)?);
76 }
77 Some((graph, rest))
78 }
pub fn vertices(&self) -> Range<usize>
pub fn adjacency(&self, from: usize) -> &Vec<Adjacency>
Trait Implementations§
Source§impl Clone for AdjacencyListGraph
impl Clone for AdjacencyListGraph
Source§fn clone(&self) -> AdjacencyListGraph
fn clone(&self) -> AdjacencyListGraph
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for AdjacencyListGraph
impl Debug for AdjacencyListGraph
Source§impl Default for AdjacencyListGraph
impl Default for AdjacencyListGraph
Source§fn default() -> AdjacencyListGraph
fn default() -> AdjacencyListGraph
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for AdjacencyListGraph
impl RefUnwindSafe for AdjacencyListGraph
impl Send for AdjacencyListGraph
impl Sync for AdjacencyListGraph
impl Unpin for AdjacencyListGraph
impl UnwindSafe for AdjacencyListGraph
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