在递归抽象代码中翻转QuadTree

时间:2016-01-31 04:54:18

标签: shape flip quadtree

我尝试递归地围绕垂直轴翻转四叉树,但不使用特定的PL。在这种情况下,我已经写了以下内容,但我100%它实际上并不好,我也不能确定我也理解它。

flip(quadtree) {
    if (singleNode)
        return quadtree
    else return formQuadTree(flip(NW(quadtree)), flip(NE(quadtree)), flip(SW(quadtree)), flip(SE(quadtree)))

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

替换:

formQuadTree(flip(NW(quadtree)),flip(NE(quadtree)),flip(SW(quadtree)),flip(SE(quadtree)))

使用:

formQuadTree(flip(NE(quadtree)),flip(NW(quadtree)),flip(SE(quadtree)),flip(SW(quadtree)))

你究竟不懂什么?

formQuadTree( topLeft, topRight, bottomLeft, bottomRight ) - 构成四叉树。每次递归进入flip( quadTree )时,您都会在归纳步骤中越走越深,并返回基本情况,翻转每个有4个子节点QuadTrees的节点。 / p>

因此,一旦所有递归调用到达return quadtree,所有的归纳节点都会相应排列。