use std::iter::Map; use std::collections::HashMap; pub struct Vertex { id: usize, name: String } pub struct Graph { vertices: HashMap, edges: HashMap> } impl Graph { pub fn new() -> Self { return Graph { vertices: HashMap::new(), edges: HashMap::new() } } pub fn add_node(&mut self, vid: usize, name: String) { let v = Vertex { id: vid, name: name }; self.vertices.insert(vid, v); } pub fn connect(&mut self, i: usize, j: usize) { let res = self.edges.get_mut(&i); match res { Some(l) => { l.push(j) }, None => {} } } pub fn DFS(&self, i: usize, j: usize) { } }