Исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности - C#
Формулировка задачи:
помогите исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности
вот что сам написал :
namespace Рекурсия { class Program { static void Main() { Console.WriteLine(Per(0,0,0)); Console.WriteLine(fun(s[0])); Console.ReadLine(); } public int Per(int i, int j, int x); int fun(int[] s, int[,] mass) { int[,] mass = new int[3, 3]; for (a = 0; a < 3; a++) { for (b = 0; b < 3; b++) { mass[a, b] = int.Parse(Console.ReadLine()); } } Console.WriteLine(); for (a = 0; a < 3; a++) { for (b = 0; b < 3; b++) { Console.Write(mass[a, b]); } Console.WriteLine(); } if (mass[i, j] > 0 & j < 3) { s[x] = i; return F(i = j, j++, x++); fun(s[x]); } else return 1; } } }
Решение задачи: «Исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности»
textual
Листинг программы
namespace ConsoleApplication3 { public class Program { public static int n=6, x,z, s=10,i,j,k; public static int[,] mass = new int[n, n]; public static int[] S = new int[s]; public static void Main() { Console.WriteLine("Задайте матрицу смежности"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { mass[i, j] = int.Parse(Console.ReadLine()); } } Console.WriteLine("Задайте точку отправления"); i = int.Parse(Console.ReadLine()); z = 0; // счётчик проходов по эллементам матрицы x = 0; k = 0; // для изменения вершины при учёте мостов one: for (j=0;j<n;j++){ if (mass[i, j] > 0) { S[x] = i; x = x + 1; mass[i, j] = 0; mass[j, i] = 0; i = j; goto one; } else { if (mass[i, j] < 1) { if (z > (n * 20)) { goto two; } else { if (j > (n - 1) & mass[i, j] < 1) { z = z + 1; i = k+1; goto one; } else { Console.WriteLine("."); } } } } } two: for (j = 0; j < s; j++) { Console.WriteLine(S[j]); } Console.Read(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д