getFullVerticalPath method

  1. @override
Set<Node> getFullVerticalPath(
  1. Node node
)
override

Возвращает все вершины от корня до листьев, включая путь до node.

Implementation

@override
Set<Node> getFullVerticalPath(Node node) {
  final result = <Node>{};
  // Добавляем путь от корня до node
  var current = node;
  while (current != root) {
    result.add(current);
    final parent = getNodeParent(current);
    if (parent == null) break;
    current = parent;
  }
  result.add(root);

  // Добавляем все узлы поддерева
  final queue = Queue<Node>()..add(node);
  while (queue.isNotEmpty) {
    current = queue.removeFirst();
    result.add(current);
    queue.addAll(getNodeEdges(current));
  }

  return result;
}