Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from copy import deepcopy
- from UI import UI
- from Graph import Graph
- from EdgesPropriety import Edges
- graph = "NULL"
- costs = "NULL"
- def load_from_file():
- f = open("data.txt", "r")
- line = f.readline().strip().split()
- nrVertices = int(line[0])
- nrEdges = int(line[1])
- global graph
- global costs
- graph = Graph(nrVertices)
- costs = Edges()
- for x in range(nrEdges):
- line = f.readline().strip().split()
- start_vertex = int(line[0])
- end_vertex = int(line[1])
- try:
- value = int(line[2])
- except:
- value = line[2]
- graph.add_edge(start_vertex, end_vertex)
- costs.add_cost((start_vertex, end_vertex), value)
- def run():
- copy_graph = deepcopy(graph)
- copy_costs = deepcopy(costs)
- ui = UI()
- ui.clear()
- while True:
- option = ui.main_menu()
- if option == 0:
- ui.clear()
- break
- elif option == 1:
- ui.clear()
- ui.number_vertices(graph.get_nr_vertices())
- elif option == 2:
- ui.clear()
- start_vertex = ui.read_vertex("Enter start vertex: ", graph.get_dict_keys())
- end_vertex = ui.read_vertex("Enter end vertex: ", graph.get_dict_keys())
- if graph.is_edge(start_vertex, end_vertex) == True:
- print("Yes")
- else:
- print("No")
- elif option == 3:
- ui.clear()
- vertex = ui.read_vertex("Enter vertex: ", graph.get_dict_keys())
- x = graph.vertex_degree(vertex)
- print("In degree:", str(x[0]), "\nOut degree:", str(x[1]))
- elif option == 4:
- ui.clear()
- vertex = ui.read_vertex("Enter vertex: ", graph.get_dict_keys())
- print(graph.outbound(vertex))
- elif option == 5:
- ui.clear()
- vertex = ui.read_vertex("Enter vertex: ", graph.get_dict_keys())
- print(graph.inbound(vertex))
- elif option == 6:
- ui.clear()
- start_vertex = ui.read_vertex("Enter start vertex: ", graph.get_dict_keys())
- end_vertex = ui.read_vertex("Enter end vertex: ", graph.get_dict_keys())
- if graph.is_edge(start_vertex, end_vertex):
- costs.get_cost(start_vertex, end_vertex)
- else:
- print("That edge does not exist!")
- elif option == 7:
- ui.clear()
- start_vertex = ui.read_vertex("Enter start vertex: ", graph.get_dict_keys())
- end_vertex = ui.read_vertex("Enter end vertex: ", graph.get_dict_keys())
- if graph.is_edge(start_vertex, end_vertex):
- value = input("Enter cost value: ").strip()
- costs.modify_cost(start_vertex, end_vertex, value)
- ui.clear()
- else:
- print("That edge does not exist!")
- elif option == 8:
- ui.clear()
- start_vertex = ui.read_vertex("Enter start vertex: ", graph.get_dict_keys())
- end_vertex = ui.read_vertex("Enter end vertex: ", graph.get_dict_keys())
- if graph.is_edge(start_vertex, end_vertex):
- print("That edge already exists!")
- else:
- value = input("Enter cost value: ").strip()
- graph.add_edge(start_vertex, end_vertex)
- costs.add_cost((start_vertex, end_vertex), value)
- ui.clear()
- elif option == 9:
- ui.clear()
- start_vertex = ui.read_vertex("Enter start vertex: ", graph.get_dict_keys())
- end_vertex = ui.read_vertex("Enter end vertex: ", graph.get_dict_keys())
- if graph.is_edge(start_vertex, end_vertex):
- graph.remove_edge(start_vertex, end_vertex)
- removed = []
- removed.append((start_vertex, end_vertex))
- costs.remove_edges(removed)
- else:
- print("That edge does not exist!")
- elif option == 10:
- ui.clear()
- vertex = ui.read_new_vertex("Enter vertex (positive integer): ", graph.get_dict_keys())
- graph.add_vertex(vertex)
- ui.clear()
- elif option == 11:
- ui.clear()
- vertex = ui.read_vertex("Enter vertex (positive integer): ", graph.get_dict_keys())
- removed = graph.remove_vertex(vertex)
- costs.remove_edges(removed)
- ui.clear()
- elif option == 12:
- ui.clear()
- ui.show(copy_graph)
- elif option == 13:
- ui.clear()
- ui.show(copy_costs)
- elif option == 14:
- ui.clear()
- ui.show(graph)
- elif option == 15:
- ui.clear()
- ui.show(costs)
- run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement