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({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
analyzeIntegrity({bool repair = false}) → GraphIntegrityReport
Анализирует структуру графа на предмет поврежденных ссылок.
override
clear() → void
override
containsNode(String nodeKey) → bool
override
extractSubtree(String key, {bool copy = true}) → IGraphEditable<T>
Создает новый граф, используя указанный узел как корень.
override
getDepths() → Map<Node, int>
override
getDistanceBetweenNodes(Node start, Node end) → 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
getPathBetweenNodes(Node start, Node end) → List<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
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