Вячеслав
клиент
21.04.2025
Влад Павлов, под вашу задачу может в качестве примера подойти эта реализация:
class GraphMatrix
{
// Матрица смежности
private readonly bool[,] adjacencyMatrix;
// Количество вершин
private readonly int vertexCount;
// Конструктор для задания размера матрицы
public GraphMatrix(int size)
{
this.vertexCount = size;
this.adjacencyMatrix = new bool[size, size];
}
// Заполнение матрицы смежности
public void SetEdge(int fromVertex, int toVertex, bool hasEdge)
{
adjacencyMatrix[fromVertex, toVertex] = hasEdge;
}
// Печать матрицы смежности
public void PrintAdjacencyMatrix()
{
for (int i = 0; i < vertexCount; i++)
{
for (int j = 0; j < vertexCount; j++)
Console.Write(adjacencyMatrix[i, j] ? "1 " : "0 ");
Console.WriteLine();
}
}
}
class Program
{
static void Main()
{
// Создаем граф с пятью вершинами
GraphMatrix graph = new GraphMatrix(5);
// Задание значений матрицы смежности
graph.SetEdge(0, 1, true); // 0->1
graph.SetEdge(0, 3, true); // 0->3
graph.SetEdge(0, 4, true); // 0->4
graph.SetEdge(1, 0, true); // 1->0
graph.SetEdge(1, 2, true); // 1->2
graph.SetEdge(2, 0, true); // 2->0
graph.SetEdge(2, 1, true); // 2->1
graph.SetEdge(2, 4, true); // 2->4
graph.SetEdge(3, 0, true); // 3->0
graph.SetEdge(3, 4, true); // 3->4
// Вывод матрицы смежности
graph.PrintAdjacencyMatrix();
}
}
Влад Павлов
клиент
21.04.2025
Вячеслав, скажите, а если необходимо реализовать динамическое расширение или уменьшение матрицы, как это можно сделать?
Вячеслав
клиент
21.04.2025
Влад Павлов, если я правильно понял вопрос, то для этой задачи необходимо использование списков и динамических структур данных. В реальных приложениях, где граф постоянно изменяется, эффективнее применять списки соседних вершин.
Чтобы комментировать, необходимо авторизоваться или зарегистрироваться.
Все советы и рекомендации, размещённые на форуме, носят исключительно информационный характер и не являются официальной инструкцией.
Перед применением любых советов убедитесь в их актуальности и безопасности для вашей конкретной ситуации. Правила форума.