Сформировать матрицу смежности (дс) - C#
Формулировка задачи:
Добрый день Уважаемые пользователи!
Вопрос по дискретным структурам, но я постараюсь максимально ясно объяснить, чтобы было понятно и без знаний дс, поставленную задачу..
Имеется вот такая функция, но в ней исключение в этой строке matrix[mt[i]-1, k] = 1, не могу понять причины, вроде все перепроверил, но всё равно не работает:
Её задача: создать матрицу смежности для графа. В
void create_matrix() { int[,] matrix = new int[n,n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) matrix[i, j] = 0; char[] mt = graf1[2].ToCharArray(); for (int i = 0, k=0; i < mt.Length; i++) { if (mt[i] == 0) k++; else matrix[mt[i]-1, k] = 1; } }
graf1[2]
лежит строка с графом(fo-представление), то есть, например, вот такая строчка: 206701900090450805600, где цифры >0 номера вершин, а 0 означает переход на новую строку,n
- это кол-во вершин этого графа. Матрица для такой строки будет иметь вид: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0И ещё вопрос как реализовать, чтобы можно было вводить двухзначные числа. Например 10, потому что в данном случаи оно посчитает как 1 и перейдёт на новую строку. Есть идея разделять цифры пробелом, но полностью как это реализовать ещё не знаю..
. Надеюсь, более менее понятно, если что, задавайте вопросы...Очень надеюсь на Вашу помощь. Заранее спасибо!)Решение задачи: «Сформировать матрицу смежности (дс)»
textual
Листинг программы
var digits = rows[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse).ToArray();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д