kdtree data structure
npm install k-dimensional_treeThis structure allows for very useful kinds of operations with an interesting computational cost. For instance, finding the post office closest to a certain point can be a hard task if the number of post offices is very large. A search for the nearest neighbor in a k-dimensional solves this problem with a computational cost of O (log n) in the average case.
``bash`
$ npm i k-dimensional_tree
`javascript
const {KdTree, Point, Rect} = require('k-dimensional_tree');
// makes a KdTree for two dimensions
const kdt = new KdTree(2);
kdt.insert(new Point([0.5, 0.3]));
kdt.insert(new Point([0.4, 0.01]));
console.log(kdt.nearest(new Point([0.01, 2])));
console.log(kdt.range(new Rect(new Point([0.01, 0.1]), new Point([0.5, 0.35]))));
console.log(kdt.pointsInRadius(new Point([0.01, 2]), 0.075));
`
#### insert
Create point in tree
`javascript`
kdt.insert(new Point([0.5, 0.3]));`
#### contains
Check if point p exists in k-dimention treejavascript`
kdt.contains(new Point([0.5, 0.3]));`
#### size
Get numbet of points in k-dimentional treejavascript`
kdt.contains();`
#### isEmpty
Check if k-dimention tree is emptyjavascript`
kdt.isEmpty();`
#### nodes
Get all points in k-dimentional treejavascript`
kdt.nodes();`
#### nearest
Get nearest neighbor point of p pointjavascript`
kdt.nearest(new Point([0.01, 2]));
#### Range searchs
###### range
Query points inside rectangle
`javascript`
kdt.range(new Rect(new Point([0.01, 0.1], new Point([0.5, 0.35]))));`
###### pointsInRadius
Query all points inside radius from a p pointjavascript``
kdt.pointsInRadius(new Point([0.01, 2]), 0.075)