class kdtree: def __init__(self, dimension =2,index=0): self.dimension = dimension self.index = index self.split = None def addPoint(self,thePoint,theParent=None): """Include another point in the kD-tree.""" if self.split is None: self.split = thePoint self.left = kdtree(self.dimension, (self.index + 1) % self.dimension) self.right = kdtree(self.dimension, (self.index + 1) % self.dimension) return "wtf" elif self.split[self.index] < thePoint[self.index]: self.left.addPoint(thePoint, self) else: self.right.addPoint(thePoint, self) if __name__ == "__main__": pointList=[(5,6), (9,7), (8,3), (7,4), (6,7), (10,6), (4,8), (3,1), (2,0), (1,9)] k = kdtree() for i in range(len(pointList)): thePoint=pointList[i] print k.addPoint(thePoint)