Skip to main content

Space-partitioning Tree Variants

Space-partitioning Tree Data Structures

TypeDescriptionKey CharacteristicTypical Use CaseAccess PatternMemory BehaviorNotes
Segment TreeTree over array segmentsRange queriesInterval sumsRange-basedTree-basedStatic or dynamic
Interval TreeStores intervalsOverlap queriesSchedulingInterval-basedTree-basedAugmented BST
Range TreeMulti-dimensional range treeOrthogonal queriesGeometryMulti-keyTree-basedHigh memory
BinSimple spatial bucketCoarse partitioningSpatial hashingBucket-basedContiguousVery basic
K-d TreeK-dimensional BSTAxis-aligned splitsNearest neighborSpatialTree-basedStatic datasets
Implicit K-d TreeArray-based k-d treeNo pointersSpace efficiencySpatialContiguousCache-friendly
Min/Max K-d TreeStores bounds per nodeFaster pruningSpatial queriesSpatialTree-basedOptimization
Relaxed K-d TreeLooser balancingEasier updatesDynamic datasetsSpatialTree-basedLess strict
Adaptive K-d TreeSelf-adjusting splitsData-awareML, clusteringSpatialTree-basedDistribution sensitive
Quadtree2D space split into 4Recursive partitionGIS, graphicsSpatialTree-based2D only
Octree3D quadtree8-way partition3D graphicsSpatialTree-based3D space
Linear OctreeLinearized octreeCompact storageSpatial indexingSpatialContiguousMorton codes
Z-orderSpace-filling curvePreserves localityDatabasesLinearizedContiguousMorton order
UB-treeB-tree + Z-orderMultidimensional indexingDatabasesKey-basedNode-basedSpace-filling
R-treeBounding rectanglesSpatial indexingGISRegion-basedNode-basedDisk-friendly
R+ TreeNon-overlapping nodesFaster searchSpatial DBsRegion-basedNode-basedCostly splits
R* TreeOptimized R-treeBetter node packingSpatial DBsRegion-basedNode-basedIndustry standard
Hilbert R-treeHilbert orderingImproved localitySpatial indexingLinearizedNode-basedSpace-filling
X-treeHigh-dimensional R-treeAvoids overlapData miningRegion-basedNode-basedLarge nodes
Metric TreeDistance-based treeMetric spacesSimilarity searchDistance-basedTree-basedNon-Euclidean
Cover TreeNested coversFast NN searchML, clusteringDistance-basedTree-basedScales well
M-treeMetric indexDynamic metric dataMultimedia DBsDistance-basedNode-basedDisk-friendly
VP-treeVantage-point splitsMetric partitioningSimilarity searchDistance-basedTree-basedStatic data
BK-treeEdit-distance treeApprox string matchSpell checkersDistance-basedTree-basedDiscrete metrics
Bounding Interval HierarchyInterval bounds treeRange pruningCollision detectionHierarchicalTree-basedPhysics engines
Bounding Volume HierarchyVolume-based hierarchyFast collision testsRay tracingHierarchicalTree-basedGraphics staple
BSD TreeBinary space decompositionRecursive partitionRenderingSpatialTree-basedScene graphs
Rapidly Exploring Random TreeRandom growth treePath planningRoboticsExploratoryTree-basedMotion planning