Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности - C#

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

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

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности. Возникла проблема,в реализации. Не понимаю как задать список ребер,чтоб он выводил мне матрицу смежности. Объясните пожалуйста!

Решение задачи: «Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности»

textual
Листинг программы
  1. var edges = new List<Edge>
  2.                         {
  3.                             new Edge("A", "B"),
  4.                             new Edge("A", "C"),
  5.                             new Edge("B", "D"),
  6.                         };
  7.  
  8.             List<string> names = edges.Select(edge => edge.Name).Union(edges.Select(edge => edge.Link)).ToList();
  9.             var adjacencyMatrix = new int[names.Count, names.Count];
  10.             foreach (Edge edge in edges)
  11.             {
  12.                 int row = names.IndexOf(edge.Name);
  13.                 int column = names.IndexOf(edge.Link);
  14.                 adjacencyMatrix[row, column] = adjacencyMatrix[column, row] = 1;
  15.             }
  16.  
  17.             for (int columns = 0; columns <= names.Count - 1; columns++)
  18.             {
  19.                 dataGridView1.Columns.Add("Columns" + columns.ToString(), names[columns]);
  20.             }
  21.             for (int row = 0; row < names.Count; row++)
  22.             {
  23.                 dataGridView1.Rows.Add(1);
  24.                
  25.                 for (int column = 0; column < names.Count; column++)
  26.                 {                    
  27.                     dataGridView1.Rows[row].Cells[column].Value = adjacencyMatrix[row, column].ToString();
  28.                 }
  29.                
  30.                 dataGridView1.Rows[row].HeaderCell.Value = names[row];
  31.             }

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


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

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

8   голосов , оценка 4.125 из 5

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

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

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