# Introduction to R-tree

R-tree is a tree data structure used for storing spatial data indexes in an efficient manner. R-trees are highly useful for spatial data queries and storage. Some of the real life applications are mentioned below:

- Indexing multi-dimensional information.
- Handling geospatial coordinates.
- Implementation of virtual maps.
- Handling game data.

**Example**:**R-Tree Represesntation**:

**Properties of R-tree**:

- Consists of a single root, internals nodes and leaf nodes.
- Root contains the pointer to the largest region in the spatial domain.
- Parent nodes contains pointers to their child nodes where region of child nodes completely overlaps the regions of parent nodes.
- Leaf nodes contains data about the MBR to the current objects.
- MBR-Minimum bounding region refers to the minimal bounding box parameter surrounding the region/object under consideration.

**Comparison with Quad-trees**:

- Tiling level optimization is required in Quad-trees whereas in R-tree doesn’t require any such optimization.
- Quad-tree can be implemented on top of existing B-tree whereas R-tree follow a different structure from a B-tree.
- Spatal index creation in Quad-trees is faster as compared to R-trees.
- R-trees are faster than Quad-trees for Nearest Neighbour queries while for window queries, Quad-trees are faster than R-trees.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.