Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def topological_sort(graph):
- is_visit = dict((node,False) for node in graph )
- order = []
- count = 0
- def dfs(graph,start_node):
- for end_node in graph[start_node]:
- if not is_visit[end_node]:
- is_visit[end_node] = True
- dfs(graph,end_node)
- order.append(start_node)
- for start_node in graph:
- if not is_visit[start_node]:
- is_visit[start_node] = True
- dfs(graph,start_node)
- order.append(" ")
- return order
- def read_file():
- list1 = []
- f = open("list.txt","r")
- line = f.readline()
- while line:
- line = line.split(',')
- for index,item in enumerate(line):
- line[index] = eval(item)
- list1.append(line)
- line = f.readline()
- f.close()
- dict1 ={}
- for k,v in enumerate(list1):
- dict1[k] =v
- return dict1
- def main():
- graph = read_file()
- order_list = topological_sort(graph)
- f = open("dfs.txt","w")
- i = 0
- count = 0
- while i < len(order_list):
- if order_list[i] == " ":
- f.write("\n")
- count +=1
- else:
- f.write(str(i-count)+","+str(order_list[i]))
- f.write("\n")
- i+=1
- f.close()
- main()
Add Comment
Please, Sign In to add comment