Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. def graph_builder(mylist):
  2. #ADJACENCY LIST
  3. adj={}
  4.  
  5. #GO THROUGH THE ARRAY OF ALL WAYS AND INITIALIZE A LIST FOR ALL OF THE NODES
  6. for w in wall:
  7. for i in range(0, len(w)):
  8. adj[w[i]]= []
  9.  
  10. #GO THROUGH ALL OF THE WAYS AND ADD ALL OF THE ADJACENT NODES FOR A SPECIFIC NODE
  11. for w in wall:
  12. for i in range(0, len(w)):
  13. if i==0:
  14. adj[w[i]]= adj[w[i]] + [w[i+1]]
  15. elif i==len(w)-1:
  16. adj[w[i]]= adj[w[i]] + [w[i-1]]
  17. else:
  18. adj[w[i]]= adj[w[i]] + [w[i-1]] + [w[i+1]]
  19.  
  20. #DEDUP THE REPEATED ADJACENT NODES FOR EACH NODE
  21. for e in adj:
  22. adj[e] = list(set(adj[e]))
  23.  
  24. #MAKE A GRAPH FROM ADJACENCY LIST
  25. g=[]
  26. for k in adj:
  27. for v in adj[k]:
  28. g.append((k,v))
  29.  
  30. #MAKE THE REVERSE OF THE GRAPH
  31. g1=[]
  32. for i,j in g:
  33. g1.append((j,i))
  34.  
  35. #MERGE THE GRAPH AND ITS REVERSE: READY FOR EULER ALGORITHM
  36. g = g+g1
  37.  
  38. return g
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement