Ragazzi in un algoritmo di creazione BST ( alberi ) , inserimento elemennti nell'albero, e visualizzazione degli elementi nella compilazione non mi da errore, ma nell'eseguibile non visualizza i dati, ed esce senza aver dato nulla in output, dov'è l'errore ?
codice:
#include<iostream>
using namespace std;
typedef struct nodo{
int info;
nodo *left;
nodo *right;
}tree;
void insert(tree *&root,int elem);
void symmetric_order(tree *root);
void pre_order(tree *root);
void post_order(tree *root);
int main()
{ tree *root,*prev;
int elem;
char scelta;
root=NULL;
do
{cout<<"Inserisci il valore "<<endl;
cin>>elem;
insert(root,elem);
cout<<"Vuoi inserire un altro elemento?"<<endl;
cin>>scelta;
}
while((scelta=='y')||(scelta=='Y'));
cout<<root->info;
cout<<root->left;
cout<<root->right;
system("PAUSE");
cout<<"\n Digita 1 per visualizzare l'albero in symmetric-order";
cout<<"\n Digita 2 per visualizzare l'albero in pre-order";
cout<<"\n Digita 3 per visualizzare l'albero in post-order ";
cin>>scelta;
switch(scelta)
{case 1:
{symmetric_order(root);
break;}
case 2:
{pre_order(root);
break;}
case 3:
{post_order(root);
break;}
}
system("PAUSE");
return 0;
}
void symmetric_order(tree *root)
{ if(root==NULL)
return;
else
{symmetric_order(root->left);
cout<<root->info;
cout<<" ";
symmetric_order(root->right);
}
return;
}
void pre_order(tree *root)
{ if(root==NULL)
return;
else
{pre_order(root->left);
pre_order(root->right);
cout<<root->info;
cout<<" ";
}
return;
}
void post_order(tree *root)
{ if(root==NULL)
return;
else
{post_order(root->right);
post_order(root->left);
cout<<root->info;
cout<<" ";
}
return;
}
void insert(tree *&root,int elem)
{tree *new_node;
if(root==NULL)
{
new_node=new tree;
new_node->info=elem;
new_node->left=NULL;
new_node->right=NULL;
root=new_node;
}
else
{if(elem<root->info)
insert(root->left,elem);
else if(elem>root->info)
insert(root->right,elem);
else
cout<<"\n Già inserito ";
}
return;
}