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<T>, provided by the GraphAnalytics extension

Проверяет, сбалансировано ли дерево Дерево считается сбалансированным, если разница в глубине любых двух поддеревьев не превышает 1
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<T>, provided by the GraphVisualization extension

Генерирует Mermaid-диаграмму для графа
toMermaidHtml([GraphStyle style = GraphStyle.defaultStyle]) String

Available on IGraph<T>, provided by the GraphVisualization extension

Генерирует HTML с Mermaid-диаграммой
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