Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##file1 = open("SCC.txt")
- ##map1 = {}
- ##revMap1 = {}
- ##count = 0
- ##for line in file1:
- ## #if count == 10:
- ## # break
- ## node, edge = int(line.split()[0]), int(line.split()[1])
- ## if node in map1:
- ## map1[node].append(edge)
- ## else:
- ## map1[node] = [edge]
- ## if edge in revMap1:
- ## revMap1[edge].append(node)
- ## else:
- ## revMap1[edge] = [node]
- ## count += 1
- ## if count % 50000 == 0:
- ## print count, "edges added."
- ##print count, "total edges added."
- ##print len(map1), len(revMap1)
- ##file1.close()
- def mapReverser(map1):
- revMap = {}
- for node in map1:
- for edge in map1[node]:
- if edge in revMap:
- revMap[edge].append(node)
- else:
- revMap[edge] = [node]
- return revMap
- testMap = {1:[4],2:[8],3:[6],4:[7],5:[2],6:[9],7:[1],8:[5,6],9:[3,7]}
- testRevMap = mapReverser(testMap)
- def dfs(map1, startvertex):
- explored = []
- toExplore = [startvertex]
- while toExplore:
- currentVertex = toExplore.pop()
- print "Currently exploring vertex", currentVertex,
- print "which has edges",map1[currentVertex]
- explored.append(currentVertex)
- for edge in map1[currentVertex]:
- if edge not in explored:
- toExplore.append(edge)
- return explored
- def dfs_loop(graph):
- t = 0
- s = 0
- f = {}
- explored = []
- for i in graph:
- if i not in explored:
- s = i
- dfs_mod(graph, i)
- print testMap
- print testRevMap
- print dfs(testMap, 2)
- print dfs(testRevMap,4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement