Tengo un problema al tratar de insertar datos a un arbol binario, el codigo q estoy haciendo es el siguiente.
 
   typedef struct Nodo
{
   int Dato;
   struct Nodo *Derecho,*Izquierdo;
}*TNodo;
 
class ArbolBinario
{
   private:
      TNodo raiz;
      AnsiString Cadena;
   public:
      ArbolBinario();
      ~ArbolBinario();
      void Crear(TNodo nodo,int dato);
      void Preorden(TNodo nodo);
      void PostOrden(TNodo nodo);
      void InOrden(TNodo nodo);
      void Operar(TNodo nodo);
      AnsiString Mostrar();
      TNodo GetRaiz();
};
 
 
   ArbolBinario::ArbolBinario()
   {
      raiz = NULL;
      Cadena = "";
   }
   ArbolBinario::~ArbolBinario()
   {}
   void ArbolBinario::Crear(TNodo nodo,int dato)
   {
      if (nodo==NULL)
      {
         nodo = new Nodo;
         nodo->Dato = dato;
         nodo->Derecho = NULL;
         nodo->Izquierdo = NULL;
      }
      else
         if (dato<nodo->Dato)
            Crear(nodo->Derecho,dato);
         else
            if (dato>nodo->Dato)
               Crear(nodo->Izquierdo,dato);
   }
   void ArbolBinario::Preorden(TNodo nodo)
   {
      if (nodo!=NULL)
      {
         Operar(nodo);
         Preorden(nodo->Izquierdo);
         Preorden(nodo->Derecho);
      }
   }
   void ArbolBinario::PostOrden(TNodo nodo)
   {
      if (nodo!=NULL)
      {
         PostOrden(nodo->Izquierdo);
         PostOrden(nodo->Derecho);
         Operar(nodo);
      }
   }
   void ArbolBinario::InOrden(TNodo nodo)
   {
      if (nodo!=NULL)
      {
         InOrden(nodo->Izquierdo);
         Operar(nodo);
         InOrden(nodo->Derecho);
      }
   }
   void ArbolBinario::Operar(TNodo nodo)
   {
      Cadena+=(AnsiString)nodo->Dato;
   }
   AnsiString ArbolBinario::Mostrar()
   {
      return (Cadena);
   }
   TNodo ArbolBinario::GetRaiz()
   {
      return (raiz);
   }
 
 
No se q estoy haciendo mal, al momento de crear el nodo siempre le mando a la raiz para q comienze a realizar la busqueda desde hay, pero la raiz nunca cambia su valor y siempre sigue en NULL y por ende siempre, cada vez q ingreso un dato, ingresa de frente al if, pero a la hora de querer mostrarlo no lo imprime xq sigue siendo NULL. Alguien seria tan amable de explicarme en que estoy fallando?, gracias de antemano.