C++ program to remove duplicate elements from the binary search tree














































C++ program to remove duplicate elements from the binary search tree



Description:
This Program is to find the duplicate element and delete from the binary search tree.

For example:
Input tree : 4,4,5,6,8,7

Output :
Element after deleting duplicate elements are : 5 6 7 8


Program :
//C++ program to remove duplicate elements from the binary search tree #include <bits/stdc++.h> using namespace std; // tree nod struct Node { int data; int key ,count; Node *left, *right; }; // returns a new tree Node Node* newNode(int data) { struct Node *temp = (struct Node *)malloc(sizeof(struct Node)); temp->key = data; temp->left = temp->right = NULL; temp->count = 1; return temp; } // A function to create binary search tree. Node* Tree(Node* temp, int key ) { // If the tree is empty, return a new node if (temp == NULL) return newNode(key); if (key == temp->key) { (temp->count)++; return temp; } // Otherwise, recur down the tree if (key < temp->key) temp->left = Tree(temp->left, key); else temp->right = Tree(temp->right, key); //return the (unchanged) node pointer return temp; } //function to delete the duplicate element Node* Delete( Node* root,int value) { if(root==NULL) return root; else if(value< root->data) { root->left= Delete(root->left,value); } else if(value> root->data) { root->right= Delete(root->right,value); } return root; } //function to display all the element present in the binary search tree and call Delete() void display(struct Node* root) { if (root != NULL) { display(root->left); if(root->count>1) { Delete(root,root->key); } else cout<<root->key<<" "; display(root->right); } } int main() { char ch; int n, arr[20],size; Node *root = new Node; root = NULL; cout<<"Enter the size of array : "; cin>>size; cout<<"Enter the elements in array : "; for(int i=0;i<size;i++) { cin>>arr[i]; } // Construct the binary search tree. for(int i = 0; i < size; i++) { root = Tree(root, arr[i]); } cout<<"\nElement after deleting duplicate elements are : " ; display(root); return 0; }

More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 6240 19
C++ program to find an element into binary tree 772 16
C++ std::is_void 573 15
C++ program to find the closest element in binary search tree 916 19
C++ program to replace every element with the least greater element on its right 574 12
C++ program to delete an element into binary tree 785 24
C++ program to find maximum element between two nodes of binary search tree 700 20
C++ std::remove_copy_if with std::vectors 548 11
C++ program to print duplicate elements from the binary search tree 2937 15
C++ program to find depth of the deepest odd level node in binary tree 575 23
C++ program to remove duplicate elements from the binary search tree 1556 20
C++ std::rotate_copy with std::vector 530 14
C++ std::copy_n with std::vector 638 22
C++ std::copy_if with std::vector 1553 18
C++ program to print all the elements of binary search tree 7107 22
C++ std::reverse_copy with std::list 599 18
C++ program to print all the elements of binary tree 1159 18
C++ program to print all full nodes in a binary tree 573 25
C++ program to find sink odd nodes in binary tree 580 15
C++ std::is_copy_assignable 596 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 609 19
C++ std::is_copy_constructible 618 27
C++ program to delete an element into binary search tree 2874 18
C++ std::reverse_copy with std::vector 488 18
C++ std::rotate with std::vector 641 15
C++ program to check for symmetric binary tree using recursion 599 25
C++ program to maximum sum from a tree with adjacent levels not allowed 552 15
C++ std::copy_n with std::list 595 21
C++ program to check if two trees are identical using recursion 546 15
C++ std::copy_n 874 21
C++ std::copy_if with std::list 999 19
C++ program to print the nodes at odd levels of a tree 563 13
C++ program to find lowest common ancestor in a binary tree 690 29
C++ program to find depth of the deepest odd level leaf node 494 13
C++ std::remove_copy_if with std::list 667 20
C++ program to add all greater values to every node in a given binary search tree 638 15

Comments