ParanoidPanda

Untitled

Dec 22nd, 2015
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. void Travel(int num_s, int num_d);
  5.  
  6. const int dots = 7;
  7. int finish = 1;
  8.  
  9. int graph[dots][dots] = {
  10. { 0, 1, 0, 0, 1, 0, 0 },
  11. { 1, 0, 1, 1, 1, 1, 0 },
  12. { 0, 1, 0, 1, 0, 1, 0 },
  13. { 0, 1, 1, 0, 0, 1, 1 },
  14. { 1, 1, 0, 0, 0, 0, 1 },
  15. { 0, 1, 1, 1, 0, 0, 1 },
  16. { 0, 0, 0, 1, 1, 1, 0 } };
  17. int path[dots];
  18. bool flag[dots];
  19.  
  20. int main(){
  21. Travel(0, 0);
  22. return 0;
  23. }
  24.  
  25. void Travel(int num_s, int num_d){
  26. if (num_s == dots && graph[path[dots-1]][finish] == 1){
  27. for (int i = 0; i < dots; i++){
  28. if (i!=dots-1)
  29. printf("%d ->", path[i]);
  30. else
  31. printf("%d", path[i]);
  32. }
  33. printf("\n");
  34. return;
  35. }
  36. if (flag[num_d] == true)
  37. return;
  38. path[num_s] = num_d;
  39. flag[num_d] = true;
  40. for (int i = 0; i < dots; i++){
  41. if (graph[num_d][i] == 0)
  42. continue;
  43. Travel(num_s + 1, i);
  44. }
  45. flag[num_d] = false;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment