四叉树的先序遍历

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。如果有正确的迭代机制,这也适用于二叉树。)