From ceaa8056213ac425d4a808c4b5685d9d6abda81e Mon Sep 17 00:00:00 2001 From: hanemile Date: Tue, 6 Nov 2018 16:16:09 +0100 Subject: Rebuild the function that builds the quadtree and changes all the empty quadtrees from the example to nil --- structs.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'structs.go') diff --git a/structs.go b/structs.go index 5f916bd..76964fa 100644 --- a/structs.go +++ b/structs.go @@ -154,18 +154,22 @@ func (quadtree *Quadtree) Insert(point Coord) { quadtree.pointsSlice = append(quadtree.pointsSlice, point) } +// Print() is a method that can be used on a quadtree. +// It prints all the root nodes of the quadtree recursively +// The tree is printed from the bottom up in the following order: NW, NE, SW, SE func (quadtree *Quadtree) Print() { - if quadtree.northEast != nil { - quadtree.northEast.Print() - } + // Define an end condition: if the quadtree-leaf is nil, the root does not continue if quadtree.northWest != nil { quadtree.northWest.Print() } - if quadtree.southEast != nil { - quadtree.southEast.Print() + if quadtree.northEast != nil { + quadtree.northEast.Print() } if quadtree.southWest != nil { quadtree.southWest.Print() } + if quadtree.southEast != nil { + quadtree.southEast.Print() + } fmt.Println(quadtree) } -- cgit 1.4.1