Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности - C#
Формулировка задачи:
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности.
Возникла проблема,в реализации. Не понимаю как задать список ребер,чтоб он выводил мне матрицу смежности.
Объясните пожалуйста!
Решение задачи: «Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности»
textual
Листинг программы
- var edges = new List<Edge>
- {
- new Edge("A", "B"),
- new Edge("A", "C"),
- new Edge("B", "D"),
- };
- List<string> names = edges.Select(edge => edge.Name).Union(edges.Select(edge => edge.Link)).ToList();
- var adjacencyMatrix = new int[names.Count, names.Count];
- foreach (Edge edge in edges)
- {
- int row = names.IndexOf(edge.Name);
- int column = names.IndexOf(edge.Link);
- adjacencyMatrix[row, column] = adjacencyMatrix[column, row] = 1;
- }
- for (int columns = 0; columns <= names.Count - 1; columns++)
- {
- dataGridView1.Columns.Add("Columns" + columns.ToString(), names[columns]);
- }
- for (int row = 0; row < names.Count; row++)
- {
- dataGridView1.Rows.Add(1);
- for (int column = 0; column < names.Count; column++)
- {
- dataGridView1.Rows[row].Cells[column].Value = adjacencyMatrix[row, column].ToString();
- }
- dataGridView1.Rows[row].HeaderCell.Value = names[row];
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д