What will be the search workflow? We will first find the node that contains the user’s location. If that node has enough desired places, we can return them to the user. If not, we will keep expanding to the neighboring nodes (either through the parent pointers or doubly linked list) until either we find the required number of places or exhaust our search based on the maximum radius.
is below the main idea?
- start from root
- traverse down and find node with location
- if node does not have enough places, check sibling nodes
- if sibling nodes don’t have enough places, check their siblings and so on.