https://github.com/mikolalysenko/interval-tree-1d
1D interval tree
https://github.com/mikolalysenko/interval-tree-1d
Last synced: 11 months ago
JSON representation
1D interval tree
- Host: GitHub
- URL: https://github.com/mikolalysenko/interval-tree-1d
- Owner: mikolalysenko
- License: mit
- Created: 2013-10-16T03:38:28.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T03:25:05.000Z (almost 3 years ago)
- Last Synced: 2025-03-29T06:05:31.938Z (11 months ago)
- Language: JavaScript
- Size: 106 KB
- Stars: 71
- Watchers: 3
- Forks: 13
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
interval-tree-1d
================
A simple 1D interval tree. Supports O(log(n)) amortized updates and O(log(n)) queries.
[](http://travis-ci.org/mikolalysenko/interval-tree-1d)
# Example
```javascript
var createIntervalTree = require("interval-tree-1d")
//Create some random list of intervals
var intervals = [ [1, 2], [-1, 0], [0.5, 1], [-10, 10] ]
//Build tree
var tree = createIntervalTree(intervals)
//Find all intervals containing query point 0.7
console.log("querying point:", 0.7)
tree.queryPoint(0.7, function(interval) {
console.log(interval)
})
```
# API
```javascript
var createIntervalTree = require("interval-tree-1d")
```
## Constructor
### `var tree = createIntervalTree(intervals)`
Constructs an interval tree given a list of intervals
## Properties
### `tree.count`
Returns the number of items in the tree
### `tree.intervals`
Returns a list of all the intervals in the tree
### `tree.insert(interval)`
Adds an interval to the tree
### `tree.remove(interval)`
Removes an interval from the tree
### `tree.queryPoint(p, visit(interval))`
Visits all intervals containing the point p
### `tree.queryInterval(lo, hi, visit(interval))`
Returns all intervals which intersect the interval `[lo, hi]`
# Credits
(c) 2013-2015 Mikola Lysenko. MIT License