https://github.com/mikolalysenko/interval-tree-1d
1D interval tree
https://github.com/mikolalysenko/interval-tree-1d
Last synced: 3 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 11 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T03:25:05.000Z (over 2 years ago)
- Last Synced: 2025-03-29T06:05:31.938Z (3 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