Probabilmente perchè non è C++ o Ansi C99 (dato che è il gcc probabilmente compila il file come C becero   )
 )
Comunque mi è anche venuta in mente una funzione per un albero non ordinato..farei
	codice:
	struct recMinValue
{
  int v;
  recMinValue *prev;
  recMinValue(int i) { v = i; prev = NULL; }
}
recMinValue *tail = NULL;
recMinValue *head = NULL;
    
int OrderStatistic(TREENODEPTR t, int *i)
{
  void traverse(t)
  {
    if( t->right )
      traverse(t->right);
    if( t->left )
      traverse(t->left);
    aggiungere t->value a lista mantenendone l'ordine (in testa i valori minori)
  }
  if( !t )
    return MAX_INT;
  
  head = tail = NULL;
  traverse(t, i);
  
  ritornare il valore dell'elemento i-esimo della lista ordinata
  
  return r;
}
 
Ovviamente non compila e non è completa (purtroppo ora non ho molto tempo   ) L'idea è di mantere una lista accessoria ordinata con in testa i valori minori....riempirla con un semplice attraversamento dell'albero mantenendo l'ordinamento (in maniera non troppo complessa in fondo) e poi ritornare l'i-esimo elemento partendo dalla testa.
) L'idea è di mantere una lista accessoria ordinata con in testa i valori minori....riempirla con un semplice attraversamento dell'albero mantenendo l'ordinamento (in maniera non troppo complessa in fondo) e poi ritornare l'i-esimo elemento partendo dalla testa.
Sicuramente questo metodo occupa memoria ed è più lento...ma se l'albero non è ordinato non credo di conoscere un metodo più furbo (in fondo questo metodo è un trucchetto...siccome l'albero non è ordinato creo una lista ordinata e uso quella)  