Есть миллионы способов представления графовых структур.Одним из таких способов является матрица.каждая строка и столбец индексируются вершиной, а каждая ячейка в матрице представляет направленное (возможно, взвешенное) ребро.Простой циклический граф с нулевыми значениями как без соединительного ребра и 1 с соединительным ребром будет выглядеть так:
| 0 1 |
| 1 0 |
Как и во многих неизменяемых структурах, вы создаете их путем возвращения новых структур на основена желаемое соотношение данных матриц.например, если мы хотим взять вышеприведенный граф и добавить ребро в первой вершине обратно на себя, матрица, представляющая это просто.
| 1 0 |
| 0 0 |
и объединить это с другой матрицей, мы простосложите их вместе.
| 0 1 | + | 1 0 | == | 1 1 |
| 1 0 | | 0 0 | | 1 0 |
Конечно, существует множество способов представления матриц с различными компромиссами для скорости, пространства и некоторых других операций, но это другой вопрос.