c++ - Binary Search Tree delete function not working properly -


i working binary search tree , attempting create function delete single node. reason nodes not delete (most of seem instances have right node not left) node won't delete seems pretty haphazard makes difficult debug. error

mov(30071,0x7fff73b1d300) malloc: *** error object 0x7fcb2b404f40: pointer being freed not allocated *** set breakpoint in malloc_error_break debug abort trap: 6

but of time node doesn't delete , program continues run.

here delete function:

node* tree::deletenode(node *node,string title) { if(node == null){   return node; } else if(node->title.compare(title) > 0){   node->left = deletenode(node->left, title); }  else if(node->title.compare(title) < 0){   node->right = deletenode(node->right, title); }  else  {   //no child      if(node->left == null && node->right == null){         if(node == node->parent->right)         {             node->parent->right = null;         }         else         {             node->parent->left = null;         }         node = null;      }      //one child      else if(node->left == null)      {        //here fail        node *temp = node;        node = node->right;        delete temp;      }       else if(node->right == null)      {        node *temp = node;        node = node->left;        delete temp;      }       else      {        node *temp = treeminimum(node->right);        node->title = temp->title;        node->right = deletenode(node->right, temp->title);      }   }  return node; } 

and:

node* tree::treeminimum(node *node) {     while(node->left != null)     {         node = node->left;     }     return node; } 

it same nodes won't delete other nodes same structurally (no left node, yes right node) delete no problem. program starts same tree of 50 nodes. apologize if information isn't suffice, please let me know if there else can provide. thank you


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -