Exemple #1
0
        // ���������� ����� � ���� ������.
        // ������������� ����������, ���� ���� ��������� ������������ ������� ���
        // �� �������� �������.
        public Graph Add(Graph graph)
        {
            // �������� ����� �� ������������ ������.
            if (graph.N > _maxN)
            {
                throw new FormatException($"���������� ������ � ����� ������ ���� ������, ��� {_maxN}");
            }
            GraphContext context = new GraphContext(graph);

            // �������� �� ���������.
            if (!context.CheckConnectivity())
            {
                throw new FormatException("���� ������ ���� ��������");
            }
            ExactAlgorithmCore exactAlgorithm = new ExactAlgorithmCore();
            int R = exactAlgorithm.FindRadius(context);

            graph.R = R;
            return(_graphDao.Add(graph));
        }
Exemple #2
0
        // Добавление графа в базу данных.
        // Выбрасывается исключение, если граф превышает максимальные размеры или
        // не является связным.
        public Graph Add(Graph graph)
        {
            // Проверка графа на максимальный размер.
            if (graph.N > _maxN)
            {
                throw new FormatException($"Количество вершин в графе должно быть меньше, чем {_maxN}");
            }
            GraphContext context = new GraphContext(graph);

            // Проверка на связность.
            if (!context.CheckConnectivity())
            {
                throw new FormatException("Граф должен быть связаным");
            }
            // Работа точного алгоритма
            ExactAlgorithmCore exactAlgorithm = new ExactAlgorithmCore();
            // нахождение реального радиуса графа при помощи точного алгоритма
            int R = exactAlgorithm.FindRadius(context);

            graph.R = R;
            // добавление нового графа
            return(_graphDao.Add(graph));
        }