()
| 156 | } |
| 157 | |
| 158 | fn main() { |
| 159 | let mut g = Graph::new(); |
| 160 | for i in 0..6 { |
| 161 | g.add_vertex(&i); |
| 162 | } |
| 163 | println!("graph empty: {}", g.is_empty()); |
| 164 | |
| 165 | let vertices = g.vertex_keys(); |
| 166 | for vtx in vertices { println!("Vertex: {:#?}", vtx); } |
| 167 | |
| 168 | g.add_edge(&0,&1,5); g.add_edge(&0,&5,2); |
| 169 | g.add_edge(&1,&2,4); g.add_edge(&2,&3,9); |
| 170 | g.add_edge(&3,&4,7); g.add_edge(&3,&5,3); |
| 171 | g.add_edge(&4,&0,1); g.add_edge(&4,&4,8); |
| 172 | println!("vert nums: {}", g.vertex_num()); |
| 173 | println!("edge nums: {}", g.edge_num()); |
| 174 | println!("contains 0: {}", g.contains(&0)); |
| 175 | |
| 176 | let vertex = g.get_vertex(&0).unwrap(); |
| 177 | println!("key: {}, to nbr 1 weight: {}", vertex.key, vertex.get_nbr_weight(&1)); |
| 178 | |
| 179 | let keys = vertex.get_neighbors(); |
| 180 | for nbr in keys { |
| 181 | println!("nighbor: {nbr}"); |
| 182 | } |
| 183 | |
| 184 | for (nbr, wt) in vertex.neighbors.iter() { |
| 185 | println!("0 nighbor: {nbr}, weight: {wt}"); |
| 186 | } |
| 187 | |
| 188 | let res = g.is_adjacent(&0, &1); |
| 189 | println!("0 is adjacent to 1: {res}"); |
| 190 | let res = g.is_adjacent(&3, &2); |
| 191 | println!("3 is adjacent to 2: {res}"); |
| 192 | |
| 193 | let rm = g.remove_vertex(&0).unwrap(); |
| 194 | println!("remove vertex: {}", rm.key); |
| 195 | println!("left vert nums: {}", g.vertex_num()); |
| 196 | println!("left edge nums: {}", g.edge_num()); |
| 197 | println!("contains 0: {}", g.contains(&0)); |
| 198 | } |
nothing calls this directly
no test coverage detected