node ** BST :: searchElement(node **tree, int item)
{
if( ((*tree)->data == item) || ( (*tree) == NULL) )
return tree;
else if( item < (*tree)->data)
return searchElement( &(*tree)->left, item);
else
return searchElement( &(*tree)->right, item);
}
int main(){
BST obj;
int choice;
int height=0,total=0,n,item;
node **tmp;
system(cls);
while(1){
//clrscr();
cout<<*****BINARY SEARCH TREE OPERATIONS*****\n\n;
cout<<1) Create Tree\n;
cout<<2) Traversal\n;
cout<<3) Insert Node\n;
cout<<4) Search Node\n;
cout<<5 Find Smallest Node\n;
cout<<6) Find Largest Node\n;
cout<<7) Exit\n;
cout<<Enter your choice : ;
cin>>choice;
switch(choice){
case 1 : //Create Tree
cout<<\n\n--Creating Tree--;
cout<<\nHow many nodes u want to enter : ;
cin>>n;
for(int i=0;i<n;i++){
cout<<Enter value : ;
cin>>item;
obj.createTree(&obj.tree,item);
}
break;
case 2 : //All Traversals
cout<<\n\nInorder Traversal : ;
obj.inOrder(obj.tree);
cout<<\n\nPre-order Traversal : ;
obj.preOrder(obj.tree);
cout<<\n\nPost-order Traversal : ;
obj.postOrder(obj.tree);
getch();
break;
case 3 : //Inserting a node in a tree
cout<<\n\n--Inserting Node in a tree--\n;
cout<<Enter value : ;
cin>>item;
obj.createTree(&obj.tree,item);
cout<<\nItem is inserted\n;
getch();
break;
case 4 : //Search element
cout<<\n\n--Search Element--\n;
cout<<Enter item to searched : ;
cin>>item;
&(*tmp) = obj.searchElement(&obj.tree,item);
if( (*tmp) == NULL)
cout<<\nSearch Element was not Found;
else
cout<<\nSearch Element was Found;
getch();
break;
case 5 : //Find Smallest Node
cout<<\n\nSmallest Node is : ;
obj.findSmallestNode(obj.tree);
getch();
break;
case 6 : //Find Largest Node
cout<<\n\nLargest Node is : ;
obj.findLargestNode(obj.tree);
getch();
break;
case 7: exit(1);
}//end of switch
}
}
Στο παραπάνω πρόγραμμα, μόνο την περίπτωση 4 δεν λειτουργεί σωστά, όταν προσπαθώ να βρείτε το συγκεκριμένο στοιχείο στο δέντρο. Έχω συμπεριλάβει συνάρτηση-μέλος στοιχείο αναζήτησης στο επάνω μέρος του κύριου προγράμματος. Όταν ήμουν αποσφαλμάτωση του προγράμματος, έπαιρνα σφάλμα κατάτμησης σε συνάρτηση-μέλος στοιχείο αναζήτησης, ιδίως σε περίπτωση κατάστασης. Πραγματικά δεν ξέρω τι πρέπει να κάνω για να βγει από αυτό το πρόβλημα. Μπορεί κάποιος παρακαλώ να με βοηθήσει να μάθετε γιατί σφάλμα κατάτμησης συμβαίνει στο εσωτερικό συνάρτηση-μέλος στοιχείο αναζήτησης. Επιτρέψτε μου να ξέρω αν έχετε οποιεσδήποτε ερωτήσεις σχετικά με αυτό το πρόγραμμα.













