பைனரி மரத்தின் வலது காட்சியை அச்சிடுக


சிரமம் நிலை எளிதாக
அடிக்கடி கேட்கப்படுகிறது அகோலைட் அடோப் அமேசான் மேக்மைட்ரிப் Snapdeal
பைனரி மரம் மரம் மரம் பயணம்

சிக்கல் அறிக்கை

“பைனரி மரத்தின் சரியான பார்வையை அச்சிடு” சிக்கல் உங்களுக்கு பைனரி மரம் வழங்கப்படுவதாகக் கூறுகிறது. இப்போது நீங்கள் இந்த மரத்தின் சரியான காட்சியைக் கண்டுபிடிக்க வேண்டும். இங்கே, பைனரி மரத்தின் சரியான பார்வை என்பது சரியான திசையிலிருந்து பார்க்கும்போது மரம் தோற்றமளிக்கும் வரிசையை அச்சிடுவதாகும்.

உதாரணமாக

பைனரி மரத்தின் வலது காட்சியை அச்சிடுக

2 7 4 6

விளக்கம்

பைனரி மரத்தை சரியான திசையில் கவனித்தால். வெளியீட்டில் அச்சிடப்பட்ட முனைகளை மட்டுமே நாம் காண முடிகிறது. ஏனெனில் 3 மற்றும் 5 முனைகள் முறையே 7 மற்றும் 4 க்கு பின்னால் மறைக்கப்படுகின்றன.

பைனரி மரத்தின் சரியான காட்சியை அச்சிடுவதற்கான அணுகுமுறை

இந்த சிக்கலில், சரியான பார்வையை நாம் கண்டுபிடிக்க வேண்டும் பைனரி மரம். இரண்டு அணுகுமுறைகளைப் பயன்படுத்தி சிக்கலை தீர்க்க முடியும். அவற்றில் ஒன்று வரிசையைப் பயன்படுத்துகிறது, மற்றொன்று மறுநிகழ்வைப் பயன்படுத்துகிறது. முதலில், வரிசையைப் பயன்படுத்தி அணுகுமுறையைப் பற்றி விவாதிப்போம். எனவே, ஒரு பயன்படுத்தி சிக்கலை தீர்க்க வரிசையில். பைனரி மரத்தின் வேரிலிருந்து ஆரம்பிக்கிறோம். மரத்தின் ஒவ்வொரு நிலைக்கும், வரிசையில் முனைகளை சேமித்து வைத்திருக்கிறோம். அடுத்த கட்டத்தின் முனைகளை சேமிக்க, தற்போதைய நிலையின் முனைகளில் நாம் பயணிக்க வேண்டும். எனவே நாம் தற்போதைய நிலை முனைகளில் பயணிக்கும்போது. இந்த மட்டத்தில் கடைசி முனையை அச்சிடுகிறோம். வலது பக்கத்திலிருந்து மரத்தை நாம் கவனிக்கும்போது. நமக்குத் தெரியும் ஒரே முனை ஒரு மட்டத்தில் வலதுபுற முனை. இந்த அணுகுமுறை இடத்தை எடுக்கும் வரிசையைப் பயன்படுத்துகிறது.

மறுநிகழ்வைப் பயன்படுத்தி தீர்வு பற்றி விவாதிப்போம். தீர்வு மரத்தின் இடது காட்சியைக் கண்டுபிடிப்பதைப் போன்றது. இந்த அணுகுமுறையில். ஒழுங்கற்ற குறுக்குவெட்டுக்கு நேர்மாறான மரத்தின் ஒரு பயணத்தை நாங்கள் செய்கிறோம். ஆனால் நாங்கள் தற்போது இருக்கும் நிலை மற்றும் இப்போது வரை அடைந்த அதிகபட்ச நிலை ஆகியவற்றைக் கண்காணிக்கிறோம். இடது சப்டிரீக்கு முன் வலது சப்டிரீக்கு செல்லும்போது. நாம் மரத்தில் புதிய நிலைக்கு நுழையும் போதெல்லாம். நாம் முதலில் வலதுபுற முனையை எதிர்கொள்கிறோம். எனவே தற்போதைய நிலை அதிகபட்ச அளவை விட அதிகமாக இருக்கிறதா என்பதை நாங்கள் எப்போதும் சரிபார்க்கிறோம், நாங்கள் முனையை அச்சிடுகிறோம். கம்பைலர் ஸ்டேக்கிற்கு தேவையான இடத்தை நாங்கள் கருத்தில் கொள்ளாவிட்டால் அணுகுமுறை சிறந்தது. கம்பைலர் ஸ்டேக்கால் எடுக்கப்பட்ட இடத்தை நாம் கருத்தில் கொண்டால், சிக்கலுக்கான இட சிக்கலானது மரத்தின் உயரத்தைப் பொறுத்தது.

குறியீடு

பைனரி மரத்தின் வலது காட்சியை அச்சிட சி ++ குறியீடு

#include <bits/stdc++.h>
using namespace std;

struct node{
  int data;
  node *left, *right;
};

node* create(int data){
  node* tmp = new node();
  tmp->data = data;
  tmp->left = tmp->right = NULL;
  return tmp;
}

void printRightView(node* root, int level, int &max_level){
    if(root){
        if(level > max_level){
            max_level = level;
            cout << root->data <<" ";
        }
        printRightView(root->right, level+1, max_level);
        printRightView(root->left, level+1, max_level);
    }
}

int main(){
  node *root = create(2);
  root->left = create(3);
  root->right = create(7);
  root->left->left = create(5);
  root->left->right =create(4);
  root->left->right->left = create(6);

  int max_level = 0;
  printRightView(root, 1, max_level);
}
2 7 4 6

பைனரி மரத்தின் வலது காட்சியை அச்சிட ஜாவா குறியீடு

import java.util.*;

class node{
  int data;
  node left;
  node right;
}

class Main{
  static node create(int data){
    node tmp = new node();
    tmp.data = data;
    tmp.left = null;
    tmp.right = null;
    return tmp;
  }

  static int max_level;
  static void printRightView(node root, int level){
      if(root != null){
          if(level > max_level){
              max_level = level;
              System.out.print(root.data+" ");
          }
          printRightView(root.right, level+1);
          printRightView(root.left, level+1);
      }
  }

  public static void main(String[] args){
    node root = create(2);
    root.left = create(3);
    root.right = create(7);
    root.left.left = create(5);
    root.left.right =create(4);
    root.left.right.left = create(6);
    
    max_level = 0;
    printRightView(root, 1);
  }
}
2 7 4 6

சிக்கலான பகுப்பாய்வு

நேர சிக்கலானது

ஓ (என்), நாங்கள் மரத்தில் உள்ள முனைகளுக்கு மேல் பயணிக்கிறோம். எனவே மரத்தில் N கணுக்கள் இருந்தால், வழிமுறைக்கு O (N) செயல்பாடுகள் தேவை.

விண்வெளி சிக்கலானது

ஓ (1). கம்பைலர் ஸ்டேக் பயன்படுத்தும் இடம் கருதப்படாவிட்டால், வேறு ஓ (எச்) இடம் தேவை.