Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. #This python file is used to search the tree
  2. from collections import deque
  3. class GraphSearcher:
  4. res = []
  5. flag = [];
  6. adjMat = [];
  7. nodeNames = [];
  8. def init(self, fileName, nodeNameFile):
  9. #reset everything
  10. self.res = []
  11. self.adjMat = []
  12. self.nodeNames = []
  13. self.flag = []
  14. f = open(fileName, "r");
  15. for line in f:
  16. self.adjMat.append(eval("["+line.replace(" ",",")+"]"))
  17. self.flag = [0]*len(self.adjMat);
  18. f.close();
  19. f = open(nodeNameFile, "r");
  20. for line in f:
  21. self.nodeNames.append(line);
  22. self.nodeNames.pop(0) #remove table header
  23. f.close();
  24. def DFS(self):
  25. s = [0];
  26. while len(s) != 0:
  27. v = s.pop();
  28. if self.flag[v] == 0:
  29. self.flag[v] = 1
  30. self.res.append(self.nodeNames[v]);
  31. for i in range(0, len(self.adjMat)):
  32. if self.adjMat[v][i] == 1:
  33. s.append(i)
  34. def BFS(self):
  35. q = deque([0]);
  36. self.flag[0] = 1;
  37. while len(q) != 0:
  38. v = q.popleft()
  39. self.res.append(self.nodeNames[v]);
  40. for i in range(0, len(self.adjMat)):
  41. if self.adjMat[v][i] == 1 and self.flag[i] != 1:
  42. q.append(i)
  43. self.flag[i] = 1
  44. def getRes(self):
  45. return self.res
  46.  
  47.  
  48.  
  49. #testing
  50. if __name__ == "__main__":
  51. graph=GraphSearcher();
  52. graph.init("./DataAssignment_1/100/AdjacencyMatrix_of_Graph_G.txt", "./DataAssignment_1/100/Node_Information_of_Graph_G.txt");
  53. graph.DFS();
  54. graph.DFS();
  55. graph.BFS();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement