Проверить достижимость в графе одной вершины из другой - C#

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

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

Проверить достижимость в графе одной вершины из другой. Граф задан списком ребер. Примеры: в графе ((1 2)(2 3)(3 4)(1 5)) вершина 4 достижима из вершины 2, а 5 – нет.

Решение задачи: «Проверить достижимость в графе одной вершины из другой»

textual
Листинг программы
  1. bool Find(int start, int finish, List<KeyValuePair<int, int>> ds, bool isDirect = false)
  2. {
  3.     if (finish == start)
  4.     {
  5.         return true;
  6.     }
  7.  
  8.     var newDs = new List<KeyValuePair<int, int>>(ds);
  9.  
  10.     if (isDirect)
  11.     {
  12.         for (int i = newDs.Count - 1; i >= 0; i--)
  13.             newDs.Add(new KeyValuePair<int, int>(newDs[i].Value, newDs[i].Key));
  14.     }
  15.  
  16.     bool findResult = false;
  17.  
  18.     for (int i = 0; i < newDs.Count; i++)
  19.     {
  20.         if (start == newDs[i].Key)
  21.         {
  22.             var currKeyPair = newDs[i];
  23.             var curr = newDs[i].Value;
  24.             newDs.RemoveAt(i);
  25.             findResult = Find(curr, finish, newDs);
  26.             newDs.Insert(i, currKeyPair);
  27.         }
  28.  
  29.         if (findResult)
  30.             return true;
  31.     }
  32.     return false;
  33. }

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


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

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

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

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

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

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