trees.py
def remove_point(self, point: Tuple[int, int]) -> None:
        """ Remove information about a player at point <point> from this tree.
        There is no empty node within this tree after remove (If the root of a
        non_leaf node is removed, the root will be replaced by a closet point
        found its descendants).

        if a player with at that point does not exist in the tree, the method
        fail silently without making any changes to the tree.
        Runtime: O(log(n))

        >>> tree = TwoDTree((0, 0), (500, 500))
        >>> tree.insert('a', (250, 250))
        >>> tree.insert('b', (100, 150))
        >>> tree.insert('c', (150, 100))
        >>> tree.insert('d', (300, 300))
        >>> 'b' in tree
        True
        >>> tree.remove_point((100, 150))
        >>> 'b' in tree
        False
        >>> tree.contains_point((100, 150))
        False
        >>> 'a' in tree
        True
        >>> 'c' in tree
        True
        >>> 'd' in tree
        True
        >>> tree1 = tree.__getattribute__('_lt')
        >>> tree1.__getattribute__('_point')
        (150, 100)
        """
        if self.contains_point(point):
            x1, y1 = point
            x, y = self._point
            if self._point == point:
                self._remove_root()
            elif self._split_type == 'x':
                if x1 <= x:
                    self._lt.remove_point(point)
                    if self._lt.is_empty():
                        self._lt = None
                else:
                    self._gt.remove_point(point)
                    if self._gt.is_empty():
                        self._gt = None
            else:
                if y1 <= y:
                    self._lt.remove_point(point)
                    if self._lt.is_empty():
                        self._lt = None
                else:
                    self._gt.remove_point(point)
                    if self._gt.is_empty():
                        self._gt = None
 Remove information about a player at point <point> from this tree.
        There is no empty node within this tree after remove (If the root of a
        non_leaf node is removed, the root will be replaced by a closet point
        found its descendants).

        if a player with at that point does not exist in the tree, the method
        fail silently without making any changes to the tree.
        Runtime: O(log(n))

        >>> tree = TwoDTree((0, 0), (500, 500))
        >>> tree.insert('a', (250, 250))
        >>> tree.insert('b', (100, 150))
        >>> tree.insert('c', (150, 100))
        >>> tree.insert('d', (300, 300))
        >>> 'b' in tree
        True
        >>> tree.remove_point((100, 150))
        >>> 'b' in tree
        False
        >>> tree.contains_point((100, 150))
        False
        >>> 'a' in tree
        True
        >>> 'c' in tree
        True
        >>> 'd' in tree
        True
        >>> tree1 = tree.__getattribute__('_lt')
        >>> tree1.__getattribute__('_point')
        (150, 100)
        
Remove information about a player at point  from this tree.
There is no empty node within this tree after remove (If the root of a
non_leaf node is removed, the root will be replaced by a closet point
found its descendants).

if a player with at that point does not exist in the tree, the method
fail silently without making any changes to the tree.


Remove information about a player at point from this tree . There is no empty node within this tree after remove ( If the root of a non_leaf node is removed the root will be replaced by a closet point found its descendants ) . if a player with at that point does not exist in the tree the method fail silently without making any changes to the tree .
def remove_point(self, point: Tuple[int, int]) -> None:
        if self.contains_point(point):
            x1, y1 = point
            x, y = self._point
            if self._point == point:
                self._remove_root()
            elif self._split_type == 'x':
                if x1 <= x:
                    self._lt.remove_point(point)
                    if self._lt.is_empty():
                        self._lt = None
                else:
                    self._gt.remove_point(point)
                    if self._gt.is_empty():
                        self._gt = None
            else:
                if y1 <= y:
                    self._lt.remove_point(point)
                    if self._lt.is_empty():
                        self._lt = None
                else:
                    self._gt.remove_point(point)
                    if self._gt.is_empty():
                        self._gt = None
def remove_point ( self , point : Tuple [ int , int ] ) -> None : if self . contains_point ( point ) : x1 , y1 = point x , y = self . _point if self . _point == point : self . _remove_root ( ) elif self . _split_type == 'x' : if x1 <= x : self . _lt . remove_point ( point ) if self . _lt . is_empty ( ) : self . _lt = None else : self . _gt . remove_point ( point ) if self . _gt . is_empty ( ) : self . _gt = None else : if y1 <= y : self . _lt . remove_point ( point ) if self . _lt . is_empty ( ) : self . _lt = None else : self . _gt . remove_point ( point ) if self . _gt . is_empty ( ) : self . _gt = None
Remove information about a player at point <point> from this tree.
Remove information about a player at point <point > from this tree .
""" Remove information about a player at point <point> from this tree.
        There is no empty node within this tree after remove (If the root of a
        non_leaf node is removed, the root will be replaced by a closet point
        found its descendants).

        if a player with at that point does not exist in the tree, the method
        fail silently without making any changes to the tree.
        Runtime: O(log(n))

        >>> tree = TwoDTree((0, 0), (500, 500))
        >>> tree.insert('a', (250, 250))
        >>> tree.insert('b', (100, 150))
        >>> tree.insert('c', (150, 100))
        >>> tree.insert('d', (300, 300))
        >>> 'b' in tree
        True
        >>> tree.remove_point((100, 150))
        >>> 'b' in tree
        False
        >>> tree.contains_point((100, 150))
        False
        >>> 'a' in tree
        True
        >>> 'c' in tree
        True
        >>> 'd' in tree
        True
        >>> tree1 = tree.__getattribute__('_lt')
        >>> tree1.__getattribute__('_point')
        (150, 100)
        """
self
point
Tuple[int, int]