Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности - 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]; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д