...Continua

codice:

void CreaAlberoDaFile(PAnodo &Tree){
    char num[20];
    cout<<"Crea Albero da FILE:"<<endl;
    Tree=NULL;
    string NomeLn,NomeOut;
    ifstream filista;
    ofstream outlista;
    NomeLn="alberocar.txt";
    filista.open(NomeLn.c_str());
    if(!filista){
        cerr<<"Non si puo' aprire il file!"<<endl;
        system("pause");
    }
   filista>>num;  
   while (!filista.eof()) { 
      bool temp=false;
      bool left=false,right=false;
      InsertSort2( Tree, num, temp,left,right); 
      if (temp==false) cout<<"Nome preesistente ="<<num<<endl;
      else cout<<" Inserito Nome= "<<num<<endl;
      filista>>num;;
      }
      system("pause");
    filista.close();
}

//Essendo non Ordinato ci possono essere ripetizioni
void InsertSort2( PAnodo &A,char m[], bool &inserito, bool &left, bool &right)  
 { //Non Ord

       if(A==NULL)  {
         A=new Anodo;
         strcpy(A->key,m);
         A->left=NULL;
         A->right=NULL;
         inserito=true;
         }          
      else if(stricmp(A->key,m)<0 && !left){
                                       left=true;
                                       right=false;
                                       InsertSort2(A->right,m,inserito,left,right);
                                       
                                       }
      else if(stricmp(A->key,m)>0 && left && !right){
                                       left=false;
                                       right=true;
                                       InsertSort2(A->left,m,inserito,left,right);
                                       
                                       }
      else InsertSort2(A->left,m,inserito,left,right);
}
/*
void InsertSort3( PAnodo &A,char m[], bool &inserito)   { //Ordinato
      if(A==NULL)  {
         A=new Anodo;
         strcpy(A->key,m);
         A->left=NULL;
         A->right=NULL;
         inserito=true;
         }          
      else if(stricmp(A->key,m)<0)  InsertSort2(A->right,m,inserito);
      else if(stricmp(A->key,m)>0)  InsertSort2(A->left,m,inserito);
      else inserito=false;
}*/

void StampaBST(PAnodo Tree,int i){
    if(Tree!=NULL){
        StampaBST(Tree->right,i+1);
        for(int j=1;j<=i;j++)
            cout<<"\t\t";
        cout<<Tree->key;
        cout<<endl<<endl<<endl;
        StampaBST(Tree->left,i+1);
    }
}
Grazie