Si ok, finora ho fatto tutto, mi manca solo la cancellazione che non ho capito come si fa, ecco quà il mio codice con tutto il resto con la visualizzazione in pre,in,post e l'inserimento:
#include <iostream>
using namespace std;
typedef struct _nodo{
int ch;
_nodo *sx;
_nodo *dx;
}nodo;
nodo *ins(nodo *root, nodo *nuovo){
if (root==NULL)
return nuovo;
else{
if (nuovo->ch < root->ch)
root->sx=ins(root->sx,nuovo);
else
root->dx=ins(root->dx,nuovo);
return root;
}
}
void pre_ordine (nodo *a){
if(a==NULL)
return;
cout<<a->ch;
if(a->sx!=NULL)
pre_ordine(a->sx);
if(a->dx!=NULL)
pre_ordine(a->dx);
return;
}
void post_ordine (nodo *a){
if (a==NULL)
return;
if(a->sx!=NULL)
post_ordine(a->sx);
if(a->dx!=NULL)
post_ordine(a->dx);
cout<<a->ch;
return;
}
void in_ordine (nodo *a){
if (a==NULL)
return;
if(a->sx!=NULL)
in_ordine(a->sx);
cout<<a->ch;
if(a->dx!=NULL)
in_ordine(a->dx);
return;
}
int main(){
nodo *root=NULL;
nodo *ipo;
int scelta;
do{
cout<<"1_Per Effettuare L'inserimento"<<endl;
cout<<"2_Per Effettuare il Pre-Ordine"<<endl;
cout<<"3_Per Effettuare il Post-Ordine"<<endl;
cout<<"4_Per Effettuare l' In-Ordine"<<endl;
cout<<"5_Esci"<<endl;
cin>>scelta;
switch (scelta){
case 1:
ipo = new nodo;
cout<<"Inserisci il numero che vuoi inserire nel T.B"<<endl;
cin>>ipo->ch;
ipo->dx = NULL;
ipo->sx = NULL;
root = ins(root,ipo);
break;
case 2:
cout<<"Ecco il suo visualizza B.T. con il pre-ordine"<<endl<<endl;
pre_ordine(root);
cout<<endl;
break;
case 3:
cout<<"Ecco il suo visualizza B.T. con il post-ordine"<<endl<<endl;
post_ordine(root);
cout<<endl<<endl;
break;
case 4:
cout<<"Ecco il suo visualizza B.T con l'in-ordine"<<endl<<endl;
in_ordine(root);
cout<<endl<<endl;
break;
}
}while(scelta<5);
}
Adesso, però devo aggiungere la funzione della cancellazione, che non riesco a fare.