gmo61520

Untitled

Mar 12th, 2016
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. def solve_graph(input_list):
  2. vertices_number = input_list[0][0]
  3. root_id = input_list[0][1]
  4. edges_number = input_list[0][2]
  5.  
  6. vertices = []
  7. for i in range(0, vertices_number):
  8. vertices.append([ i, None, None ])
  9.  
  10. root_vertice = vertices[root_id]
  11.  
  12. edges = []
  13. for i in range(1, edges_number):
  14. edges.append(input_list[i])
  15.  
  16. def arrange_children(vertice, vertice_parent_id):
  17. vertice_id = vertice[0]
  18.  
  19. def add_child(vertice, child):
  20. if vertice[1] == None:
  21. vertice[1] = child
  22. else:
  23. vertice[2] = child
  24.  
  25. for edge in edges:
  26. if edge[0] == vertice_id and edge[1] != vertice_parent_id:
  27. add_child(vertice, vertices[edge[1]])
  28. elif edge[1] == vertice_id and edge[0] != vertice_parent_id:
  29. add_child(vertice, vertices[edge[0]])
  30.  
  31. if vertice[1] != None:
  32. arrange_children(vertice[1], vertice_id)
  33. if vertice[2] != None:
  34. arrange_children(vertice[2], vertice_id)
  35.  
  36. arrange_children(root, -1)
  37. return root_vertice
Advertisement
Add Comment
Please, Sign In to add comment