Menu

[Solved] C Question Someone Add Code Code Removes Value Tree Example Tree Delete 18 Include Using N Q37266640

C++ Question

Can someone add code to this code that removes a value from thetree.

Example tree->delete(18)

#include

using namespace std;

struct node{
   int value;
   node *left;
   node *right;
};

class btree{
public:
   btree();
   ~btree();

   void insert(int key);
   node *search(int key);
   void destroy_tree();
   void inorder_print();
   void postorder_print();
   void preorder_print();

private:
   void destroy_tree(node *leaf);
   void insert(int key, node *leaf);
   node *search(int key, node *leaf);
   void inorder_print(node *leaf);
   void postorder_print(node *leaf);
   void preorder_print(node *leaf);

   node *root;
};

btree::btree(){
   root = NULL;
}

btree::~btree(){
   destroy_tree();
}

void btree::destroy_tree(node *leaf){
   if(leaf != NULL){
       destroy_tree(leaf->left);
       destroy_tree(leaf->right);
       delete leaf;
   }
}

void btree::insert(int key, node *leaf){

   if(key < leaf->value){
       if(leaf->left != NULL){
           insert(key,leaf->left);
       }else{
           leaf->left =new node;
          leaf->left->value = key;
          leaf->left->left = NULL;
          leaf->left->right = NULL;
       }
   }else if(key >= leaf->value){
       if(leaf->right != NULL){
           insert(key,leaf->right);
       }else{
           leaf->right =new node;
          leaf->right->value = key;
          leaf->right->right = NULL;
          leaf->right->left = NULL;
       }
   }

}

void btree::insert(int key){
   if(root != NULL){
       insert(key, root);
   }else{
       root = new node;
       root->value = key;
       root->left = NULL;
       root->right = NULL;
   }
}

node *btree::search(int key, node *leaf){
   if(leaf != NULL){
       if(key == leaf->value){
           returnleaf;
       }
       if(key < leaf->value){
           returnsearch(key, leaf->left);
       }else{
           returnsearch(key, leaf->right);
       }
   }else{
       return NULL;
   }
}

node *btree::search(int key){
   return search(key, root);
}

void btree::destroy_tree(){
   destroy_tree(root);
}

void btree::inorder_print(){
   inorder_print(root);
   cout << “n”;
}

void btree::inorder_print(node *leaf){
   if(leaf != NULL){
       inorder_print(leaf->left);
       cout << leaf->value<< “,”;
      inorder_print(leaf->right);
   }
}

void btree::postorder_print(){
   postorder_print(root);
   cout << “n”;
}

void btree::postorder_print(node *leaf){
   if(leaf != NULL){
       inorder_print(leaf->left);
      inorder_print(leaf->right);
       cout << leaf->value<< “,”;
   }
}

void btree::preorder_print(){
   preorder_print(root);
   cout << “n”;
}

void btree::preorder_print(node *leaf){
   if(leaf != NULL){
       cout << leaf->value<< “,”;
       inorder_print(leaf->left);
      inorder_print(leaf->right);
   }
}

int main(){

   //btree tree;
   btree *tree = new btree();

   tree->insert(10);
   tree->insert(6);
   tree->insert(14);
   tree->insert(5);
   tree->insert(8);
   tree->insert(11);
   tree->insert(18);

   tree->preorder_print();
   tree->inorder_print();
   tree->postorder_print();

   delete tree;

}

It needs to be able to delete certain values from the treealso.

Expert Answer


Answer to C++ Question Can someone add code to this code that removes a value from the tree. Example tree->delete(18) #include usi… . . .

OR


Leave a Reply

Your email address will not be published. Required fields are marked *