Обход графа в глубину - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. string [,]graph = new string[10,11];
  2. graph[0, 0] = "a";
  3. graph[0, 1] = "0"; //а
  4. graph[0, 2] = "b";//b
  5. graph[0, 3] = "c";//c
  6. graph[0, 4] = "0";//d
  7. graph[0, 5] = "0";//f
  8. graph[0, 6] = "0";//g
  9. graph[0, 7] = "0";//h
  10. graph[0, 8] = "0";//r
  11. graph[0, 9] = "0";//o
  12. graph[0, 10] = "0";//p
  13. graph[1, 0] = "b";
  14. graph[1, 1] = "a"; //а
  15. graph[1, 2] = "0";//b
  16. graph[1, 3] = "c";//c
  17. graph[1, 4] = "d";//d
  18. graph[1, 5] = "f";//f
  19. graph[1, 6] = "0";//g
  20. graph[1, 7] = "0";//h
  21. graph[1, 8] = "0";//r
  22. graph[1, 9] = "0";//o
  23. graph[1, 10] = "0";//p
  24. graph[2, 0] = "c";
  25. graph[2, 1] = "a"; //а
  26. graph[2, 2] = "b";//b
  27. graph[2, 3] = "0";//c
  28. graph[2, 4] = "0";//d
  29. graph[2, 5] = "f";//f
  30. graph[2, 6] = "0";//g
  31. graph[2, 7] = "0";//h
  32. graph[2, 8] = "0";//r
  33. graph[2, 9] = "0";//o
  34. graph[2, 10] = "0";//p
  35. graph[3, 0] = "d";
  36. graph[3, 1] = "0"; //а
  37. graph[3, 2] = "b";//b
  38. graph[3, 3] = "0";//c
  39. graph[3, 4] = "0";//d
  40. graph[3, 5] = "f";//f
  41. graph[3, 6] = "g";//g
  42. graph[3, 7] = "0";//h
  43. graph[3, 8] = "0";//r
  44. graph[3, 9] = "0";//o
  45. graph[3, 10] = "0";//p
  46.  
  47. graph[4, 0] = "f";
  48. graph[4, 1] = "0"; //а
  49. graph[4, 2] = "b";//b
  50. graph[4, 3] = "c";//c
  51. graph[4, 4] = "d";//d
  52. graph[4, 5] = "0";//f
  53. graph[4, 6] = "0";//g
  54. graph[4, 7] = "0";//h
  55. graph[4, 8] = "0";//r
  56. graph[4, 9] = "0";//o
  57. graph[4, 10] = "0";//p
  58. graph[5, 0] = "g";
  59. graph[5, 1] = "0"; //а
  60. graph[5, 2] = "0";//b
  61. graph[5, 3] = "0";//c
  62. graph[5, 4] = "d";//d
  63. graph[5, 5] = "0";//f
  64. graph[5, 6] = "0";//g
  65. graph[5, 7] = "h";//h
  66. graph[5, 8] = "r";//r
  67. graph[5, 9] = "0";//o
  68. graph[5, 10] = "0";//p
  69.  
  70. graph[6, 0] = "h";
  71. graph[6, 1] = "0"; //а
  72. graph[6, 2] = "0";//b
  73. graph[6, 3] = "0";//c
  74. graph[6, 4] = "0";//d
  75. graph[6, 5] = "0";//f
  76. graph[6, 6] = "g";//g
  77. graph[6, 7] = "0";//h
  78. graph[6, 8] = "r";//r
  79. graph[6, 9] = "0";//o
  80. graph[6, 10] = "0";//p
  81. graph[7, 0] = "r";
  82. graph[7, 1] = "0"; //а
  83. graph[7, 2] = "0";//b
  84. graph[7, 3] = "0";//c
  85. graph[7, 4] = "0";//d
  86. graph[7, 5] = "0";//f
  87. graph[7, 6] = "g";//g
  88. graph[7, 7] = "h";//h
  89. graph[7, 8] = "0";//r
  90. graph[7, 9] = "o";//o
  91. graph[7, 10] = "p";//p
  92. graph[8, 0] = "o";
  93. graph[8, 1] = "0"; //а
  94. graph[8, 2] = "0";//b
  95. graph[8, 3] = "0";//c
  96. graph[8, 4] = "0";//d
  97. graph[8, 5] = "0";//f
  98. graph[8, 6] = "0";//g
  99. graph[8, 7] = "0";//h
  100. graph[8, 8] = "r";//r
  101. graph[8, 9] = "0";//o
  102. graph[8, 10] = "p";//p
  103. graph[9, 0] = "p";
  104. graph[9, 1] = "0"; //а
  105. graph[9, 2] = "0";//b
  106. graph[9, 3] = "0";//c
  107. graph[9, 4] = "0";//d
  108. graph[9, 5] = "0";//f
  109. graph[9, 6] = "0";//g
  110. graph[9, 7] = "0";//h
  111. graph[9, 8] = "r";//r
  112. graph[9, 9] = "o";//o
  113. graph[9, 10] = "0";//p
  114. int n = 0;
  115. string zabor = "";
  116. string verh = "";
  117. string bfs_num = "";
  118. string vmist = "";
  119. string start = "";
  120.  
  121. textBox3.Text = "Внршина BFS-номер Черга";
  122. start = Convert.ToString(textBox1.Text);
  123. for (int i = 0; i <= 9; i++)
  124. {
  125. if (graph[i, 0] == start)
  126. {
  127. n++; //номер DFS
  128. verh = graph[i, 0]; //зберігаємо імя початкової вершини
  129. bfs_num = Convert.ToString(n); //dfs для виведення
  130. vmist += graph[i, 0]; // стек
  131. buf_i = i; //до якого елементу відноситься
  132. zabor += verh;// в стрічку добавляєм нову заборонену вершину
  133. }
  134. }
  135. textBox3.Text += Environment.NewLine + " " + verh + " " + bfs_num + " " + vmist;
  136. while (vmist != "")
  137. {
  138. for (int i = buf_i, j = 1; j < 9; j++)
  139. {
  140. if (graph[i, j] != "0")
  141. {
  142. if (zabor.Contains(graph[i, j]) == false)
  143. {
  144. n++;
  145. verh = graph[i, j];
  146. bfs_num = Convert.ToString(n);
  147. vmist += graph[i, j];
  148. textBox3.Text += Environment.NewLine + " " + verh + " " + bfs_num + " " + vmist;
  149. buf_i = j;
  150. zabor += verh;
  151. }
  152. else
  153. {
  154. vmist = vmist.Substring(0,vmist.Length - 1);
  155. buf_i = j;
  156. /* int len = vmist.Length;
  157. start =Convert.ToString(vmist[len]);
  158. for (int k = 0; k <= 9; k++)
  159. {
  160. if (graph[k, 0] == start)
  161. {
  162. buf_i = i; //до якого елементу відноситься
  163. }
  164. }
  165. */
  166. textBox3.Text += Environment.NewLine + " " + "-" + " " + "-"+ " " + vmist;
  167. }
  168. }
  169. }
  170. }
Написал вот такую програму но она не роботает, в глуб получилось, а ета никак, простите за руский
получилось в шир а не в глуб

Решение задачи: «Обход графа в глубину»

textual
Листинг программы
  1.  for (int i = 0; i <= 9; i++)
  2.             {
  3.                 if (graph[i, 0] == start)
  4.                 {
  5.                     n++;        //номер DFS
  6.                     verh = graph[i, 0];     //зберігаємо імя початкової вершини
  7.                     bfs_num = Convert.ToString(n);      //dfs для виведення
  8.                     vmist += graph[i, 0]; // стек
  9.                     buf_i = i;  //до якого елементу відноситься
  10.                     zabor += verh;// в стрічку добавляєм нову заборонену вершину
  11.                 }
  12.             }
  13.             textBox3.Text += Environment.NewLine + "      " + verh + "                    " + bfs_num + "                       " + vmist;
  14.             DFS_visit(buf_i);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы