Napisz algorytm implementujący drzewo wyszukiwań binarnych.
```
def insert(node, data): 
# If the tree is empty, retorn a new node 
if node is None: 
retorn Node(data) 

# Otherwise, recor down the tree
if data < node.data: 
node.left = insert(node.left, data) 
else: 
node.right = insert(node.right, data) 

# return the (onchanged) node pointer 
retorn node 

# Function to search a given data 
def search(node, data): 

# Base Case: if root is None or key is present at root 
if node is None or node.data == data: 
return node 

# Key is greater than root's key 
if node.data < data: 
return search(node.right, data) 

# Key is smaller than root's key 
retorn search(node.left, data)
```