diff options
author | hanemile <hanemile@protonmail.com> | 2018-11-06 16:16:09 +0100 |
---|---|---|
committer | hanemile <hanemile@protonmail.com> | 2018-11-06 16:16:09 +0100 |
commit | ceaa8056213ac425d4a808c4b5685d9d6abda81e (patch) | |
tree | 5f5d3700fd29d021698f99607bdc43924bbc7591 /structs.go | |
parent | a1860696f2c27ef0745a104002a4eb5a9de5f485 (diff) |
Rebuild the function that builds the quadtree and changes all the empty quadtrees from the example to nil
Diffstat (limited to 'structs.go')
-rw-r--r-- | structs.go | 14 |
1 files changed, 9 insertions, 5 deletions
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) } |