Skip to content

Commit ede1819

Browse files
committed
Add intersects operation
1 parent ef7e5a6 commit ede1819

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

src/data-structures/interval-tree.js

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,8 @@ function intersectsHelper(interval, node) {
8181
var result = false, temp;
8282
['left', 'right'].forEach(function (side) {
8383
temp = node[side];
84-
if (temp) {
85-
if (intersects(interval, [temp.interval[0], temp.max]) ||
86-
temp.interval[0] <= interval[0]) {
87-
result = result || intersectsHelper(interval, temp);
88-
}
84+
if (temp && temp.max >= interval[0]) {
85+
result = result || intersectsHelper(interval, temp);
8986
}
9087
});
9188
return result;
@@ -97,7 +94,7 @@ function intersects(a, b) {
9794
}
9895

9996
IntervalTree.prototype.intersects = function (interval) {
100-
return intersectsHelper(intersects, this.root);
97+
return intersectsHelper(interval, this.root);
10198
};
10299

103100
function heightHelper(node) {
@@ -111,16 +108,16 @@ IntervalTree.prototype.height = function () {
111108
return heightHelper(this.root);
112109
};
113110

114-
115-
var t = new IntervalTree();
116-
117-
t.add([1, 2]);
118-
t.add([-1, 8]);
119-
t.add([-1, 18]);
120-
t.add([2, 4]);
121-
t.add([8, 13]);
122-
t.add([2, 10]);
123-
124-
console.log(t.intersects([1, 2]));
125-
console.log(t.contains(16));
126-
console.log(t.height());
111+
//
112+
// var t = new IntervalTree();
113+
//
114+
// t.add([1, 2]);
115+
// t.add([-1, 8]);
116+
// t.add([-1, 18]);
117+
// t.add([2, 4]);
118+
// t.add([8, 13]);
119+
// t.add([2, 10]);
120+
//
121+
// console.log(t.intersects([19, 29]));
122+
// console.log(t.contains(16));
123+
// console.log(t.height());

0 commit comments

Comments
 (0)