我尝试递归地围绕垂直轴翻转四叉树,但不使用特定的PL。在这种情况下,我已经写了以下内容,但我100%它实际上并不好,我也不能确定我也理解它。
flip(quadtree) {
if (singleNode)
return quadtree
else return formQuadTree(flip(NW(quadtree)), flip(NE(quadtree)), flip(SW(quadtree)), flip(SE(quadtree)))
有什么建议吗?
答案 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
,所有的归纳节点都会相应排列。