将二进制搜索树节点存储到图顶点的最佳方式



访问二进制搜索树中的每个节点,然后将每个节点存储到图中的顶点的最佳方式是什么?

您可以使用队列从左到右访问BST

private void visit(BSTNode root, Integer from, Integer till) {
Queue<BSTNode> queue = new ArrayDeque<>();
queue.add(root);
Graph<Integer> graph = new Graph<>();
while (!queue.isEmpty()) {
BSTNode node = queue.poll();
if (node.getLeft() != null) {
graph.addEdge(node, node.getLeft());
queue.add(node.getLeft());
}
if (node.getRight() != null) {
graph.addEdge(node, node.getRight());
queue.add(node.getRight());
}
}
}

最新更新