BST#
- class astropy.table.BST(data, row_index, unique=False)[source]#
Bases:
objectA basic binary search tree in pure Python, used as an engine for indexing.
- Parameters:
Attributes Summary
Return the BST height.
Methods Summary
add(key[, data])Add a key, data pair.
find(key)Return all data values corresponding to a given key.
find_node(key)Find the node associated with the given key.
is_valid()Returns whether this is a valid BST.
items()Return BST items in order as (key, data) pairs.
range(lower, upper[, bounds])Return all nodes with keys in the given range.
range_nodes(lower, upper[, bounds])Return nodes in the given range.
remove(key[, data])Remove data corresponding to the given key.
replace_rows(row_map)Replace all rows with the values they map to in the given dictionary.
same_prefix(val)Assuming the given value has smaller length than keys, return nodes whose keys have this value as a prefix.
shift_left(row)Decrement all rows larger than the given row.
shift_right(row)Increment all rows greater than or equal to the given row.
sort()Make row order align with key order.
Return BST rows sorted by key values.
traverse([order])Return nodes of the BST in the given order.
Attributes Documentation
- height#
Return the BST height.
Methods Documentation
- range(lower, upper, bounds=(True, True))[source]#
Return all nodes with keys in the given range.
- Parameters:
- lower
tuple,None Lower bound (no lower bound if None)
- upper
tuple,None Upper bound (no upper bound if None)
- bounds(2,)
tupleof bool Indicates whether the search should be inclusive or exclusive with respect to the endpoints. The first argument corresponds to an inclusive lower bound, and the second argument to an inclusive upper bound.
- lower
- replace_rows(row_map)[source]#
Replace all rows with the values they map to in the given dictionary. Any rows not present as keys in the dictionary will have their nodes deleted.
- Parameters:
- row_map
dict Mapping of row numbers to new row numbers
- row_map
- same_prefix(val)[source]#
Assuming the given value has smaller length than keys, return nodes whose keys have this value as a prefix.
- traverse(order='inorder')[source]#
Return nodes of the BST in the given order.
- Parameters:
- order
str The order in which to recursively search the BST. Possible values are: “preorder”: current node, left subtree, right subtree “inorder”: left subtree, current node, right subtree “postorder”: left subtree, right subtree, current node
- order