Graph<T> class

Implemented types
Available extensions

Constructors

Graph({required Node root, Map<String, Node> nodes = const {}, Map<String, T> nodesData = const {}, Map<Node, Set<Node>> edges = const {}, Map<Node, Node> parents = const {}, INodeDataManager<T>? nodeDataManager})

Properties

backtrackIterator Iterator<List<Node>>
Создает итератор для обхода с backtracking
no setteroverride
breadthIterator Iterator<Node>
Итератор для обхода в ширину
no setteroverride
breadthNodes Iterable<Node>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Итерация по узлам в порядке обхода в ширину
no setter
depthIterator Iterator<Node>
Итератор для обхода в глубину
no setteroverride
depthNodes Iterable<Node>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Итерация по узлам в порядке обхода в глубину
no setter
edges Map<Node, Set<Node>>
no setteroverride
edgesWithEmptySets Map<Node, Set<Node>>
no setter
graphString String
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
leaves Iterable<Node>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Итерация по листьям графа
no setter
leavesIterator Iterator<Node>
Итератор для обхода листьев
no setteroverride
levelIterator Iterator<Set<Node>>
Итератор по уровням
no setteroverride
levels Iterable<Set<Node>>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Итерация по уровням графа
no setter
nodeData Map<String, T>
no setteroverride
nodes Map<String, Node>
no setteroverride
parents Map<Node, Node>
no setteroverride
paths Iterable<List<Node>>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Итерация по всем путям в графе
no setter
root Node
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

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
clearCache() → void
Очищает кэш для освобождения памяти Используйте этот метод, если нужно временно освободить память, например, когда граф долго не используется
containsNode(String nodeKey) bool
override
extractSubtree(String key, {bool copy = true}) IGraphEditable<T>
Создает новый граф, используя указанный узел как корень.
override
filtered<R>(Iterator<R> source, bool predicate(R)) Iterator<R>
Создает фильтрованный итератор
override
findCentralNodes() Set<Node>

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

Находит центральные узлы графа Центральным считается узел, от которого максимальное расстояние до любого листа минимально
findLowestCommonAncestor(Node first, Node second) Node?
Находит наименьшего общего предка для двух узлов
findRepeatingSubtrees() Map<String, List<Node>>

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

Находит повторяющиеся поддеревья
getDataCacheMetrics() Map<String, dynamic>
Получить метрики использования кэша данных
getDepths() Map<Node, int>
override
getFullVerticalPath(Node node) Set<Node>
Возвращает все вершины от корня до листьев, включая путь до 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

Проверяет, изоморфны ли два графа Два графа изоморфны, если они имеют одинаковую структуру, независимо от порядка потомков
mapped<R>(Iterator<T> source, R mapper(T)) Iterator<R>
Создает итератор с трансформацией
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pathBetween(Node start, Node end) Iterable<Node>
Создает Iterable для пути между узлами
pathBetween(Node start, Node end) Iterable<Node>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Создает Iterable для пути между узлами
pathIterator(Node start, Node end) Iterator<Node>
Создает итератор для обхода пути между узлами
override
removeEdge(Node parent, Node child) → void
override
removeNode(Node node) → void
override
subtree(Node root) Iterable<Node>
Создает Iterable для поддерева
subtree(Node root) Iterable<Node>

Available on IGraphIterable<T>, provided by the GraphIterable extension

Создает Iterable для поддерева
subtreeIterator(Node root) Iterator<Node>
Создает итератор для обхода поддерева
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