Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def solve_graph(input_list):
- vertices_number = input_list[0][0]
- root_id = input_list[0][1]
- edges_number = input_list[0][2]
- vertices = []
- for i in range(0, vertices_number):
- vertices.append([ i, None, None ])
- root_vertice = vertices[root_id]
- edges = []
- for i in range(1, edges_number):
- edges.append(input_list[i])
- def arrange_children(vertice, vertice_parent_id):
- vertice_id = vertice[0]
- def add_child(vertice, child):
- if vertice[1] == None:
- vertice[1] = child
- else:
- vertice[2] = child
- for edge in edges:
- if edge[0] == vertice_id and edge[1] != vertice_parent_id:
- add_child(vertice, vertices[edge[1]])
- elif edge[1] == vertice_id and edge[0] != vertice_parent_id:
- add_child(vertice, vertices[edge[0]])
- if vertice[1] != None:
- arrange_children(vertice[1], vertice_id)
- if vertice[2] != None:
- arrange_children(vertice[2], vertice_id)
- arrange_children(root, -1)
- return root_vertice
Advertisement
Add Comment
Please, Sign In to add comment