MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / main

Function main

publication/code/chapter09/graph_adjlist.rs:158–198  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

156}
157
158fn 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}

Callers

nothing calls this directly

Calls 8

add_vertexMethod · 0.45
vertex_keysMethod · 0.45
add_edgeMethod · 0.45
get_vertexMethod · 0.45
get_neighborsMethod · 0.45
iterMethod · 0.45
is_adjacentMethod · 0.45
remove_vertexMethod · 0.45

Tested by

no test coverage detected