Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. %This is my graph:
  2. output =
  3. edges: {[0 1] [0 2] [1 3] [1 4] [1 5] [2 6] [3 6] [2 7] [3 7] [4 7]}
  4. vertices: [0 1 2 3 4 5 6 7]
  5.  
  6. %I am traversing with this code
  7. maximal_sets = {};
  8. stack=java.util.Stack();
  9. stack.push(0);
  10. CP = [];
  11. Q = [];
  12. labels = ones(1,size(output.vertices,2));
  13. while ~stack.empty()
  14. flag = 0;
  15. x = stack.peek();
  16. for e = 1:size(output.edges,2)
  17. if output.edges{e}(1) == x && labels(output.edges{e}(2)+1) == 1
  18. flag = 1;
  19. w = output.edges{e}(2);
  20. stack.push(w);
  21. CP = union(CP,w);
  22. break
  23. end
  24. end
  25. if flag == 0
  26. Q = [];
  27. % PRECEDES are leaves of the graph
  28. if any(PRECEDES{end}==x)
  29. for v=1:size(CP,2)
  30. Q = union(Q,CP(v));
  31. end
  32. end
  33. if size(Q,2) > 0
  34. maximal_sets{end+1} = Q;
  35. end
  36. for ed = 1:size(output.edges,2)
  37. if output.edges{ed}(1) == x
  38. labels(output.edges{ed}(2)+1) = 1;
  39. end
  40. end
  41. labels(x+1) = 0;
  42. stack.pop();
  43. CP = CP(find(CP~=x));
  44. end
  45. end
  46.  
  47. for i = 1:size(maximal_sets,2)
  48. disp(maximal_sets{i})
  49. end
  50.  
  51. %The paths from root to leaves (not including root which is 0) are listed:
  52. 1 3 7
  53.  
  54. 1 4 7
  55.  
  56. 1 5
  57.  
  58. 2 6
  59.  
  60. 2 7
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement