|
def binary_tree_insert(treenode, value, greaterthan): |
|
def binary_tree_insert(treenode, value): |
|
if greaterthan(nodevalue, value): return (binary_tree_insert(left, value, greaterthan), nodevalue, right) |
|
if nodevalue > value: return (binary_tree_insert(left, value), nodevalue, right) |
|
return (left, nodevalue, binary_tree_insert(right, value, greaterthan)) |
|
return (left, nodevalue, binary_tree_insert(right, value)) |
|
def build_binary_tree(values, greaterthan=lambda x, y: x > y): |
|
def build_binary_tree(values): |
|
tree = binary_tree_insert(tree, v, greaterthan) |
|
tree = binary_tree_insert(tree, v) |
|
def search_binary_tree(treenode, value, greaterthan=lambda x, y: x > y): |
|
def search_binary_tree(treenode, value): |
|
if greaterthan(nodevalue, value): return search_binary_tree(left, value, greaterthan) elif greaterthan(value, nodevalue): return search_binary_tree(right, value, greaterthan) |
|
if nodevalue > value: return search_binary_tree(left, value) elif value > nodevalue: return search_binary_tree(right, value) |
|
return (traverse_binary_tree(left) + [value] + traverse_binary_tree(right)) |
|
return (traverse_binary_tree(left) + [value] + traverse_binary_tree(right)) |
|
def treesort(array, cmp=lambda x, y: x > y): array[:] = traverse_binary_tree(build_binary_tree(array, cmp)) |
|
def treesort(array): array[:] = traverse_binary_tree(build_binary_tree(array)) |