四叉树的先序遍历
Preorder traversal of a quadtree
所以我知道对于二叉树来说,预序遍历的一般方法是这样的
void displayPreOrder(TreeNode node)
{
if(node != null)
{
displayPreorder(node.left);
displayPreorder(node.right);
System.out.println(node.value);
}
}
但是我在尝试围绕四叉树的前序遍历时遇到问题。我试图找到一些资源,但空手而归。有什么提示吗?
您 post 编辑的代码用于 post 二叉树的顺序遍历。对于四叉树,你只需要访问所有 children 而不是只访问左右
为简单起见,我假设 TreeNode
定义了一个方法 children()
,其中 returns 是节点 children 的迭代器或 List
一些 well-defined 订单。如果那不可用,只需使用任何可用的机制遍历 children。
void displayPreOrder(TreeNode node)
{
if(node != null)
{
// visit the root first for pre-order
System.out.println(node.value);
for (TreeNode child : node.children()) {
displayPreorder(child)
}
}
}
(P.S。如果有正确的迭代机制,这也适用于二叉树。)
所以我知道对于二叉树来说,预序遍历的一般方法是这样的
void displayPreOrder(TreeNode node)
{
if(node != null)
{
displayPreorder(node.left);
displayPreorder(node.right);
System.out.println(node.value);
}
}
但是我在尝试围绕四叉树的前序遍历时遇到问题。我试图找到一些资源,但空手而归。有什么提示吗?
您 post 编辑的代码用于 post 二叉树的顺序遍历。对于四叉树,你只需要访问所有 children 而不是只访问左右
为简单起见,我假设 TreeNode
定义了一个方法 children()
,其中 returns 是节点 children 的迭代器或 List
一些 well-defined 订单。如果那不可用,只需使用任何可用的机制遍历 children。
void displayPreOrder(TreeNode node)
{
if(node != null)
{
// visit the root first for pre-order
System.out.println(node.value);
for (TreeNode child : node.children()) {
displayPreorder(child)
}
}
}
(P.S。如果有正确的迭代机制,这也适用于二叉树。)