【问题标题】:Preorder traversal of a quadtree四叉树的前序遍历
【发布时间】:2017-03-14 22:14:01
【问题描述】:

所以我知道对于二叉树来说,预排序遍历它的一般方法是这样的

void displayPreOrder(TreeNode node)
{
    if(node != null)
    {
        displayPreorder(node.left);
        displayPreorder(node.right);
        System.out.println(node.value);
    }
}

但是我在试图围绕四叉树的前序遍历时遇到了麻烦。我试图找到一些资源,但空手而归。有什么提示吗?

【问题讨论】:

    标签: java recursion tree tree-traversal quadtree


    【解决方案1】:

    您发布的代码用于发布二叉树的顺序遍历。对于四叉树,您只需要访问所有子节点,而不仅仅是左右访问。

    为简单起见,我假设TreeNode 定义了一个方法children(),它以某种明确定义的顺序返回一个迭代器或节点的子节点的List。如果这不可用,只需使用任何可用的机制遍历子代。

    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. 考虑到正确的迭代机制,这也适用于二叉树。)

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2015-05-09
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多