BST#
- class astropy.table.BST(data, row_index, unique=False)[source]#
Bases:
object
A 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
- 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