二叉搜索树的概念
有没有更好的方法呢?
二叉搜索树的操作
class BST:
def __init__(self,key,left=None,right=None):
self.left = left
self.right = right
self.label = key
def bst_find(tree,search_key):
if tree is None:
return None
if search_key == tree.label:
return tree
elif search_key < tree.label:
return bst_find(tree.left,search_key)
else:
return bst_find(tree.right,search_key)
node_1 = BST(1)
node_2_5 = BST(2.5)
node_2 = BST(2,node_1,node_2_5)
node_4 = BST(4)
node_3 = BST(3,node_2,node_4)
print(bst_find(node_3,2.5))
class BST:
def __init__(self,key,left=None,right=None):
self.left = left
self.right = right
self.label = key
def bst_find(tree,search_key):
if tree is None:
return None
if search_key == tree.label:
return tree
elif search_key < tree.label:
return bst_find(tree.left,search_key)
else:
return bst_find(tree.right,search_key)
def bst_add(tree,x):
if tree is None:
return BST(x)
if x > tree.label:
tree.right = bst_add(tree.right,x)
elif x < tree.label:
tree.left = bst_add(tree.left,x)
return tree
bst = BST(4)
bst = bst_add(bst,1)
bst = BST(4)
bst = bst_add(bst,1)
bst = bst_add(bst,2)
bst = bst_add(bst,3)
bst = bst_add(bst,5)
bst = bst_add(bst,6)
性能分析
b-tree
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfxCbhJX-1665019715342)(https: