# 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.

**Comparision 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.

## Recommended Posts:

- AA Trees | Set 1 (Introduction)
- Introduction of B+ Tree
- Introduction of B-Tree
- BK-Tree | Introduction & Implementation
- Skip List | Set 1 (Introduction)
- Fibonacci Heap | Set 1 (Introduction)
- Self Organizing List | Set 1 (Introduction)
- Suffix Array | Set 1 (Introduction)
- Red-Black Tree | Set 1 (Introduction)
- Gomory-Hu Tree | Set 1 (Introduction)
- Decision Tree Introduction with example
- Persistent Trie | Set 1 (Introduction)
- Wavelet Trees | Introduction
- Palindromic Tree | Introduction & Implementation
- ScapeGoat Tree | Set 1 (Introduction and Insertion)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.