Заменить вершину в Quickgraph (C #) - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу заменить значение вершины моего двунаправленного графа или самой вершины. Сам график не должен меняться. Это означает, что все ребра, которые связаны с вершиной, остаются связанными с вершиной после того, как я изменяю значение этого. Я был бы удивлен, если бы не было быстрого способа приблизиться к нему.

Мой код очень длинный, поэтому я пытаюсь описать его с помощью примера кода.

    private class GraphValues
    {
        public int Index;
        public string Name;

        public GraphValues(string name, int index)
        {
            Name = name;
            Index = index;
        }
    }

    private BidirectionalGraph<GraphValues, Edge<GraphValues>> GenerateTestGraph()
    {
        BidirectionalGraph<GraphValues, Edge<GraphValues>> testGraph = new BidirectionalGraph<GraphValues, Edge<GraphValues>>();
        GraphValues A = new GraphValues("A", -1);
        GraphValues B = new GraphValues("B", -1);
        GraphValues C = new GraphValues("C", -1);
        GraphValues AB = new GraphValues("AB", -1);
        GraphValues ABC = new GraphValues("ABC", -1);

        testGraph.AddVerticesAndEdge(new Edge<GraphValues>(A, AB));
        testGraph.AddVerticesAndEdge(new Edge<GraphValues>(B, AB));
        testGraph.AddVerticesAndEdge(new Edge<GraphValues>(B, ABC));
        testGraph.AddVerticesAndEdge(new Edge<GraphValues>(AB, ABC));
        testGraph.AddVerticesAndEdge(new Edge<GraphValues>(C, ABC));

        return testGraph;
    }

Функция GenerateTestGraph () здесь только генерирует простой примерный график. Моя цель - изменить значения индексов некоторых значений вершин в графе. Поэтому я хочу сгенерировать некоторую функцию, которая изменяет значения моего графика. Это простой способ сделать это? Или мне пришлось заново составлять график с новыми индексами?

Итак, я изменяю этот график: Inputgraph (пример)

В это: Outputgraph (пример)

...