в общем есть матрица для ориентированного графа, тут все понятно, есть матрица допустим n * n, если нужно установить связь например 3 - 4, то делаем так: *(3 * n + 4) = 1, все просто. теперь допустим нужна матрица для неориентированного графа, 4 - 3 эквивалентно 3 - 4, а 3 - 3 не может быть, следовательно нам для хранения матрицы требуется память (n * n / 2 - n / 2), однако вопрос, как адресовать в таком массиве нужные нам связи, если написать *(3 * n + 4), то получим выход за пределы массива, есть идеи?