Salve ragazzi ho la seguente function per inserire un elemento in un bst

codice:
#include <iostream>


using namespace std;


// Creo il tipo di dato tree
typedef struct node {
    node *left;
    node *right;
    int info;
} tree;


// Prototipi delle functions
tree bst_insert(tree root, int elem);



int main()
{

    tree *root;
    int elemento;

    root=null;

    do {
        cout<<"Inserisci l'elemento da inserire:"<<endl;
        cin>>elemento;
        bst_insert(root, elemento);
        cout<<"Vuoi inserire un altro elemento?";
        cin>>scelta;
    } while (scelta == 's' or scelta == 'S');
}


/* Inserimento di un elemento nel bst */
tree bst_insert(tree root, int elem)
{
      if ( root == null ) {

           root = new tree;
           root.info = elem;
           root.left = null;
           root.right = null;

      }
      else {
           if ( elem < root.info ) {
                root = bst_insert(root.left, elem);
           }
           else if ( elem > root.info ) {
                root = bst_insert(root.right, elem);
           }
           else {
                cout<<"Dato duplicato\n";
           }
      }
      return (root);
}
Mi dà questi 6 errori:

codice:
Compiling: C:\Users\Gaten\Desktop\bst.cpp
C:\Users\Gaten\Desktop\bst.cpp: In function 'int main()':
C:\Users\Gaten\Desktop\bst.cpp:30: error: 'null' was not declared in this scope
C:\Users\Gaten\Desktop\bst.cpp:35: error: conversion from 'tree*' to non-scalar type 'tree' requested
C:\Users\Gaten\Desktop\bst.cpp: In function 'tree bst_insert(tree, int)':
C:\Users\Gaten\Desktop\bst.cpp:85: error: 'null' was not declared in this scope
C:\Users\Gaten\Desktop\bst.cpp:87: error: no match for 'operator=' in 'root = (tree*)operator new(12u)'
C:\Users\Gaten\Desktop\bst.cpp:8: note: candidates are: node& node::operator=(const node&)
C:\Users\Gaten\Desktop\bst.cpp:95: error: conversion from 'node*' to non-scalar type 'tree' requested
C:\Users\Gaten\Desktop\bst.cpp:98: error: conversion from 'node*' to non-scalar type 'tree' requested
Process terminated with status 1 (0 minutes, 0 seconds)
6 errors, 0 warnings
Qualcuno può aiutarmi?