C++ program to delete an element into binary tree

C++ program to delete an element into binary tree

This Program is to find the number entered by the user in the binary tree, if the element is present then delete the element from that position, and if the element is not found it will display the list of elements as it is.

For Example:

Input for tree is: 4,5,7,8,9
The entered element to delete from binary tree is : 5

Output will be :
Element deleted
After deleting array is : 4,7,8,9

Program :

//C++ program to delete an element into binary tree
#include <bits/stdc++.h> using namespace std; // tree node struct Node { int data; struct Node *left, *right; }; // returns a new tree Node struct Node* newNode(int data) { struct Node* temp = new Node(); temp->data = data; temp->left = temp->right = NULL; return temp; }; //function to display all the element present in the binary tree void display(struct Node* root) { if (root != NULL) { display(root->left); cout<<root->data<<" "; display(root->right); } } void deletnode(struct Node *root,struct Node *node) { queue<struct Node*> q; q.push(root); // Do level order traversal until last node struct Node* temp; while(!q.empty()) { temp = q.front(); q.pop(); if (temp->right) { if (temp->right == node) { temp->right = NULL; delete(node); return; } else q.push(temp->right); } if (temp->left) { if (temp->left == node) { temp->left=NULL; delete(node); return; } else q.push(temp->left); } } } // function to delete element in binary tree void deletion(struct Node* root, int data) { queue<struct Node*> q; q.push(root); struct Node *temp; struct Node *data_node = NULL; // Do level order traversal to find deepest while (!q.empty()) { temp = q.front(); q.pop(); if (temp->data == data) data_node = temp; if (temp->left) q.push(temp->left); if (temp->right) q.push(temp->right); } int x = temp->data; deletnode(root, temp); data_node->data = x; } int main() { int n; Node *root = newNode(1); root->left = newNode(2); root->right = newNode(3); root->right->left = newNode(5); root->right->right = newNode(6); root->left->left = newNode(4); root->left->left->left = newNode(7); root->left->left->right = newNode(8); root->right->left->left = newNode(9); root->right->right->left = newNode(10); root->left->left->left->left = newNode(11); root->left->left->right->left = newNode(12); root->left->left->right->right = newNode(13); cout<<"\nEnter the Element to be deleted: "; cin>>n; deletion(root,n); cout<<"\nElement Deleted"<<endl; cout<<"\nAfter Deletion: "<<endl; cout<<"Elements are: "; display(root); cout<<endl; return 0; }

More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 7322 19
C++ program to find an element into binary tree 842 16
C++ std::is_void 626 15
C++ program to find the closest element in binary search tree 1066 19
C++ program to replace every element with the least greater element on its right 626 12
C++ program to delete an element into binary tree 854 24
C++ program to find maximum element between two nodes of binary search tree 750 20
C++ std::remove_copy_if with std::vectors 617 11
C++ program to print duplicate elements from the binary search tree 3160 15
C++ program to find depth of the deepest odd level node in binary tree 630 23
C++ program to remove duplicate elements from the binary search tree 1824 20
C++ std::rotate_copy with std::vector 602 14
C++ std::copy_n with std::vector 689 22
C++ std::copy_if with std::vector 1693 18
C++ program to print all the elements of binary search tree 8405 22
C++ std::reverse_copy with std::list 654 18
C++ program to print all the elements of binary tree 1400 18
C++ program to print all full nodes in a binary tree 619 25
C++ program to find sink odd nodes in binary tree 633 15
C++ std::is_copy_assignable 657 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 694 19
C++ std::is_copy_constructible 676 27
C++ program to delete an element into binary search tree 3443 18
C++ std::reverse_copy with std::vector 536 18
C++ std::rotate with std::vector 847 15
C++ program to check for symmetric binary tree using recursion 653 25
C++ program to maximum sum from a tree with adjacent levels not allowed 616 15
C++ std::copy_n with std::list 665 21
C++ program to check if two trees are identical using recursion 597 15
C++ std::copy_n 988 21
C++ std::copy_if with std::list 1193 19
C++ program to print the nodes at odd levels of a tree 618 13
C++ program to find lowest common ancestor in a binary tree 735 29
C++ program to find depth of the deepest odd level leaf node 538 13
C++ std::remove_copy_if with std::list 738 20
C++ program to add all greater values to every node in a given binary search tree 708 15