java - 将二叉搜索树节点存储到图顶点的最佳方法
问题描述
访问二叉搜索树中的每个节点,然后将每个节点存储到图中的顶点中的最佳方法是什么?
解决方案
您可以使用队列在 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());
}
}
}
推荐阅读
- python - 当 X 是多维时,多项式回归是否有效?
- google-cloud-iot - iot-device-sdk-embedded-c 中的 IOTC_CONNECTION_RESET_BY_PEER_ERROR
- jquery - Jquery 仅适用于双击
- java - Mongo java api忽略嵌套的或/和运算符
- linux - 从命令行中删除 github 中的 ssh 密钥
- javascript - 当类处于活动状态和非活动状态时更改鼠标悬停的背景图像
- algorithm - 我无法理解 Rust 代码的区别
- spring - @EnableWebSecurity 由配置文件处理的调试布尔标志
- javascript - 在javascript中垂直定位工具提示
- kubernetes - 如何为本地 Kubernetes 集群中的应用程序分配 DNS 名称?