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; }

Rispondi quotando