SubtreeView<T> class
Представляет собой view на поддерево существующего графа.
View позволяет работать с частью графа как с отдельным графом, при этом все изменения отражаются в оригинальном графе. Операции ограничены только узлами, которые принадлежат поддереву.
Пример использования:
final graph = Graph<String>(root: Node('root'));
// ... добавление узлов и ребер
// Создаем view на поддерево
final subtreeView = graph.extractSubtree('node1', copy: false);
// Работаем только с поддеревом
subtreeView.addNode(Node('new_node'));
subtreeView.addEdge(subtreeView.root, Node('new_node'));
- Implemented types
- Available extensions
Constructors
-
SubtreeView.new({required Graph<
T> originalGraph, required Node subtreeRoot})
Properties
-
edges
→ Map<
Node, Set< Node> > -
no setteroverride
- graphString → String
-
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
-
nodeData
→ Map<
String, T> -
no setteroverride
-
nodes
→ Map<
String, Node> -
no setteroverride
-
originalGraph
→ Graph<
T> -
final
-
parents
→ Map<
Node, Node> -
no setteroverride
- root → Node
-
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- subtreeRoot → Node
-
final
Methods
-
addEdge(
Node parent, Node child) → void -
override
-
addNode(
Node node) → void -
override
-
analyzeStructure(
) → Map< String, dynamic> -
Available on IGraph<
Анализирует структуру графа и возвращает статистикуT> , provided by the GraphAnalytics extension -
calculateEditDistance(
IGraph other) → int -
Available on IGraph<
Вычисляет "расстояние редактирования" между графами (минимальное количество операций для превращения одного графа в другой)T> , provided by the GraphAnalytics extension -
clear(
) → void -
override
-
containsNode(
String nodeKey) → bool -
override
-
extractSubtree(
String key, {bool copy = true}) → IGraphEditable< T> -
Создает новый граф, используя указанный узел как корень.
override
-
findCentralNodes(
) → Set< Node> -
Available on IGraph<
Находит центральные узлы графа Центральным считается узел, от которого максимальное расстояние до любого листа минимальноT> , provided by the GraphAnalytics extension -
findRepeatingSubtrees(
) → Map< String, List< Node> > -
Available on IGraph<
Находит повторяющиеся поддеревьяT> , provided by the GraphAnalytics extension -
getDepths(
) → Map< Node, int> -
override
-
getFullVerticalPath(
Node node) → Set< Node> -
override
-
getLeaves(
{Node? startNode}) → Set< Node> -
override
-
getNodeByKey(
String key) → Node? -
override
-
getNodeData(
String key) → T? -
override
-
getNodeEdges(
Node node) → Set< Node> -
override
-
getNodeLevel(
Node node) → int -
override
-
getNodeParent(
Node node) → Node? -
override
-
getPathToNode(
Node node) → Set< Node> -
override
-
getSiblings(
Node node) → Set< Node> -
override
-
getVerticalPathBetweenNodes(
Node first, Node second, {Map< String, int> ? depths}) → Set<Node> -
override
-
isAncestor(
{required Node ancestor, required Node descendant}) → bool -
override
-
isBalanced(
) → bool -
Available on IGraph<
Проверяет, сбалансировано ли дерево Дерево считается сбалансированным, если разница в глубине любых двух поддеревьев не превышает 1T> , provided by the GraphAnalytics extension -
isIsomorphicTo(
IGraph other) → bool -
Available on IGraph<
Проверяет, изоморфны ли два графа Два графа изоморфны, если они имеют одинаковую структуру, независимо от порядка потомковT> , provided by the GraphAnalytics extension -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
removeEdge(
Node parent, Node child) → void -
override
-
removeNode(
Node node) → void -
override
-
toMermaid(
[GraphStyle style = GraphStyle.defaultStyle]) → String -
Available on IGraph<
Генерирует Mermaid-диаграмму для графаT> , provided by the GraphVisualization extension -
toMermaidHtml(
[GraphStyle style = GraphStyle.defaultStyle]) → String -
Available on IGraph<
Генерирует HTML с Mermaid-диаграммойT> , provided by the GraphVisualization extension -
toString(
) → String -
A string representation of this object.
inherited
-
updateNodeData(
String key, T data) → void -
override
-
visitBreadth(
VisitCallback visit, {Node? startNode}) → int -
override
-
visitDepth(
VisitCallback visit, {Node? startNode}) → void -
override
-
visitDepthBacktrack(
BacktrackCallback visit) → void -
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited