jain12

Delete binary tree

Mar 6th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. class Node{
  5.   public:
  6.       int data;
  7.       Node *left,*right;
  8.       Node(int key){
  9.         data=key;
  10.         left=NULL;
  11.         right=NULL;
  12.         }
  13.   };
  14.  
  15. void preorder(Node *root){
  16.   if(root==NULL)
  17.      return;
  18.   cout<<" "<<root->data;
  19.   preorder(root->left);
  20.   preorder(root->right);
  21.   }
  22.  
  23. void DeleteNode(Node * node_ptr){
  24.   if(node_ptr==NULL)
  25.     return;
  26.   DeleteNode(node_ptr->left);
  27.   DeleteNode(node_ptr->right);
  28.   delete node_ptr;
  29.   }
  30.  
  31. void DeleteTree(Node **root_ref){
  32.  if(*root_ref==NULL)
  33.     return;
  34.  Node *temp=*root_ref;
  35.  DeleteNode(temp);
  36.  *root_ref=NULL;
  37.  }
  38.  
  39. int main(){
  40.   Node *root=NULL;
  41.   Node *newnode=new Node(1);
  42.   root=newnode;
  43.   root->left=new Node(2);
  44.   root->right=new Node(3);
  45.   (root->left)->left=new Node(4);
  46.   (root->right)->right=new Node(5);
  47.   cout<<"pre order traversal ";
  48.   preorder(root);
  49.   DeleteTree(&root);
  50.   cout<<endl<<"after deletion,pre order traversal is ";
  51.   preorder(root);
  52.   return 0;
  53.   }
  54.  
  55.  /* DeleteNode ka code ye bhi ho sakta tha.
  56.   void DeleteNode(Node * node_ptr){
  57.     if(node_ptr->left!=NULL)
  58.         DeleteNode(node_ptr->left);
  59.     if(node_ptr->right!=NULL)
  60.         DeleteNode(node_ptr->right);
  61.     delete node_ptr;
  62.     }
  63. */
Add Comment
Please, Sign In to add comment