diff --git a/ov9/program1.py b/ov9/program1.py index 7e38cc0327509df9053f680d8a71f3f1132ca42f..0ac072db6461a645b67bc2de2f9fafd161b52408 100644 --- a/ov9/program1.py +++ b/ov9/program1.py @@ -98,9 +98,17 @@ def calculate_shortest_path(current_node, time, current_neighbour, slutt): return False -queue = [] + +def update_que(que): + tmp_arr = [a for a in res_arr if a.node in que] + tmp_arr.sort(key=lambda x: x.time, reverse=True) + que = [a.node for a in tmp_arr if a in tmp_arr] + return que + + +queue = [] def dijkstras(slutt, fra, start): - + global queue current_node = [b for b in res_arr if b.node == fra][0] for tmp_edge in edge_arr: if tmp_edge.fra == fra: @@ -126,18 +134,17 @@ def dijkstras(slutt, fra, start): for i in res_arr: if i.time != max_num.time + 1: print(i.node, i.time, i.prev, i.visited) + print('que when done is: ', queue) exit() - else: queue.pop(0) current_node.visited = True + queue = update_que(queue) dijkstras(slutt,queue[0],start) - - def init_things(): if len(sys.argv) > 1: if sys.argv[1] == '-d': @@ -147,7 +154,7 @@ def init_things(): init_table() queue.append(start) start_node = [a for a in res_arr if a.node == start][0] - start_node.time = 1 + start_node.time = 0 dijkstras(slutt, start, start) elif sys.argv[1] == '-a': print('A* not yet implemented')