编写算法以实现二叉搜索树。
def insert(node, data): 
    # 如果树为空，则返回一个新的节点
    if node is None: 
        return Node(data) 
  
    # 否则，向下递归树
    if data < node.data: 
        node.left = insert(node.left, data) 
    else: 
        node.right = insert(node.right, data) 
  
    # 返回未改变的节点指针
    return node 
  
# 查找给定数据的函数
def search(node, data): 
      
    # 基本情况：如果根节点为空或键存在于根节点上
    if node is None or node.data == data: 
        return node 
  
    # 键大于根节点的键
    if node.data < data: 
        return search(node.right, data) 
  
    # 键小于根节点的键
    return search(node.left, data)