首页 > 解决方案 > 将二叉搜索树节点存储到图顶点的最佳方法

问题描述

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

标签: javaalgorithmdata-structuresgraphbinary-search-tree

解决方案


您可以使用队列在 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());
                }
            }
        }

推荐阅读