ALGO: avoid printing KTNil for both childs

This commit is contained in:
hasufell 2014-11-30 20:04:02 +01:00
parent 968262d935
commit 78a3dd8b95
No known key found for this signature in database
GPG Key ID: 220CD1C5BDEED020
1 changed files with 10 additions and 8 deletions

View File

@ -125,14 +125,16 @@ rangeSearch kd' sq' = (goPt kd' sq', goTree kd' sq' True)
-- A pretty rose tree suitable for printing.
goTree :: KDTree PT -> Square -> Bool -> Tree String
goTree KTNil _ _ = Node "nil" []
goTree (KTNode ln pt dir rn) sq vis =
Node treeText
[if' (p1' dir sq < (cur' dir . unp2 $ pt))
(goTree ln sq vis)
(goTree ln sq False)
, if' ((cur' dir . unp2 $ pt) < p2' dir sq)
(goTree rn sq vis)
(goTree rn sq False)]
goTree (KTNode ln pt dir rn) sq vis
| ln == KTNil && rn == KTNil = Node treeText []
| otherwise =
Node treeText
[if' (p1' dir sq < (cur' dir . unp2 $ pt))
(goTree ln sq vis)
(goTree ln sq False)
, if' ((cur' dir . unp2 $ pt) < p2' dir sq)
(goTree rn sq vis)
(goTree rn sq False)]
where
treeText
| vis && inRange sq pt = "** " ++ (show . unp2 $ pt)