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
}
}
Ve výše uvedeném programu, jediný případ 4 nefunguje správně, když se snaží najít určitý prvek stromu. Zahrnul jsem členské funkce vyhledávání prvku v horní části hlavního programu. Když jsem byl ladění programu, byl jsem dostat chybu segmentace na členské funkce vyhledávání element, zejména v případě, stavu. Já opravdu nevím, co musím udělat, aby vyšel z tohoto problému. Mohl by někdo prosím, pomozte mi zjistit, proč se chyba segmentace děje uvnitř hledání element členské funkce. Dejte mi vědět, pokud máte jakékoliv dotazy týkající se tohoto programu.













