unknown student Interview Question for Students
- 0of 0 votes
AnswerOperation :Deleting element in the binary search tree(Without linked list) I'm trying to implement a pseudo-code but operation not implemented.can cause?(If you want I can write a pseudo-code.)So,delete operation is not happening for BST.can cause?-1 is null element in array. Linked list is not be for this code.
- maxflow34 March 11, 2014 in turkiye
void deleting(int *Tree,int element){
int temp=0;
while((Tree[temp]!=element) && (Tree[temp]!=-1)){
/*loop until the element is found*/
if(element<Tree[temp])
temp=2*temp+1;
else
temp=2*temp+2;
}
if(Tree[temp]!=1)/* if the element is found*/
/*case1 - Delete leaf node*/
if((Tree[2*temp+1]==-1) && (Tree[2*temp+2]==-1))
Tree[temp]=-1
/*case 2- delete node with one child*/
else if((Tree[2*temp+1]==-1)|| (Tree[2*temp+2]==-1)){
if(Tree[2*temp+1]!=-1) /* is the child in the left of temp*/
preOrder((2*temp+1),Tree);
else
preOrder((2*temp+2),Tree);
}
/*case 3-delete node with 2 children*/
else if {
int inOrder_N=2*temp+2 /* inorder successor is surely in the right sub tree*/
while(Tree[2*inOrder_N]!=-1)
inOrder_N=2*inOrder_N;
Tree[temp]=Tree[inOrder_N]; /* replace with inorder successor*/
if(Tree[2*inOrder_N+2]==-1);/* inorder successor has no child*/
Tree[inOrder_N]=-1;
else /* inorder successor has no child*/
preOrder(((2*inOrder_N)+1),Tree)
}
else
printf("element not found");
}
void preOrder(int node, int *bst,int n){
if(node<n){
printf("Node : %d - Value : %d \n",node,bst[node]);
preOrder(2*node+1,bst,N);
preOrder(2*node+2,bst,N);
}
return;
}| Report Duplicate | Flag | PURGE
unknown Student student Algorithm
- arsragavan March 12, 2014