jain12

second largest element in BST

Mar 12th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. class Node{
  4.   public:
  5.       int data;
  6.       Node *left,*right;
  7.       Node(int key){
  8.         data=key;
  9.         left=right=NULL;
  10.         }
  11.   };
  12.  
  13.  int SecondLargest(Node *root){
  14.   if(root==NULL)
  15.     return INT_MAX;
  16.   Node* sec_largest=new Node(INT_MAX);
  17.   if(root->left!=NULL)
  18.     sec_largest=root->left;
  19.   Node* largest=root;
  20.   while(largest->right!=NULL){
  21.     sec_largest=largest;
  22.     largest=largest->right;
  23.     }
  24.   return sec_largest->data;
  25.   }
  26.  
  27. void Insert(Node **root_ref,int key){
  28.   if(*root_ref==NULL){
  29.     *root_ref=new Node(key);
  30.     return;
  31.     }
  32.   if((*root_ref)->data<key)
  33.     Insert(&((*root_ref)->right),key);
  34.   else
  35.      if((*root_ref)->data>key)
  36.        Insert(&((*root_ref)->left),key);
  37.   }
  38.  
  39. int main(){
  40.  Node *root=NULL;
  41.  Insert(&root,5);
  42.  Insert(&root,7);
  43.  Insert(&root,6);
  44.  Insert(&root,2);
  45.  Insert(&root,8);
  46.  cout<<"second largest element is :"<<SecondLargest(root);
  47.  }
Add Comment
Please, Sign In to add comment