Source code of R-trees and variations

Here you will find source codes for the original R-tree and some of its most popular variants (R+-tree, R*-tree, ...), mainly used for indexing data in in low-dimensional space, R-tree extensions for high-dimensional spaces (TV-tree, X-tree, ...), and R-tree-based indexing techniques for temporal and spatio-temporal data (Segment R-tree, TB-tree, ...). Last but not least, a number of other useful links, including links to GiST, XXL etc. libraries for programming purposes.


R-trees and variants (in low-dimensional space)

R-tree [Gut84]:

R+ -tree [SRF87]:

  • C implementation by Timos Sellis @NTUA: Rplus.tar.gz (90k)

  • Java implementation by Dimitris Papadias @HKUST: Rplus-java.zip (18k)
    with visual interface (requires Symantec Visual Cafe)

R*-tree [BKSS90]:

cR-tree [BPT02]:


R-tree extensions for high-dimensional spaces

TV-tree [LJF94]:

  • C implementation by King-Ip (David) Lin @UMD TV.tar.gz (310k)

X-tree [BKK96]:

  • C++ implementation by Hans-Peter Kriegel @Munich: xtree.tar.gz (30k)

Pyramid tree [BBK98]:


R-tree-based indexing techniques for temporal and spatio-temporal data

Segment R-tree [KS89]:

  • Java implementation by Vassilis Tsotras @UCR: SR-tree-java.zip (24k)
    note: does not support overflow pages

Overlapping B+-tree [TML99]:

 MV3R-tree [TP01] for historical timestamp and interval queries:

  • C++ implementation by Yufei Tao @HKUST: mv3r.zip (260k)

TPR*-tree [TPS03] for predictive queries:

  • C++ implementation by Yufei Tao @HKUST: tpr_star.zip (980k)

FNR-tree [Fre03] for objects moving on (and constrained by) fixed networks:


Other useful links:  

  The XXL (eXtensible and fleXible Library) Java for advanced query processing by Seeger et al. @Marburg

  The GiST library for building multi-dimensional indexing techniques by Hellerstein et al. @Berkeley

  Software for temporal databases by TimeCenter