def test_bfs(): gm = MatrixGraph() d = ['s', 'a', 'b', 'c', 'd', 'e', 'f', 'g'] for data in d: gm.insert_vertex(data) gm.insert_edge(0, 1, 1) gm.insert_edge(0, 3, 1) gm.insert_edge(0, 4, 1) gm.insert_edge(1, 0, 1) gm.insert_edge(1, 3, 1) gm.insert_edge(1, 5, 1) gm.insert_edge(2, 3, 1) gm.insert_edge(2, 4, 1) gm.insert_edge(2, 7, 1) gm.insert_edge(3, 0, 1) gm.insert_edge(3, 1, 1) gm.insert_edge(3, 2, 1) gm.insert_edge(4, 0, 1) gm.insert_edge(4, 2, 1) gm.insert_edge(5, 1, 1) gm.insert_edge(5, 6, 1) gm.insert_edge(5, 7, 1) gm.insert_edge(6, 5, 1) gm.insert_edge(6, 7, 1) gm.insert_edge(7, 2, 1) gm.insert_edge(7, 5, 1) gm.insert_edge(7, 6, 1) for i in gm.bfs(0): print i.data, i.distance, i.dtime, i.parent