কম্পিউটার

টারনারি এক্সপ্রেশনকে C++ এ একটি বাইনারি ট্রিতে রূপান্তর করুন


এই টিউটোরিয়ালে, আমরা টারনারি এক্সপ্রেশনকে বাইনারি ট্রিতে রূপান্তর করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।

এই জন্য আমরা একটি ত্রিমুখী অভিব্যক্তি প্রদান করা হবে. আমাদের কাজ হল প্রদত্ত অভিব্যক্তিটিকে একটি বাইনারি ট্রি আকারে রূপান্তর করা সম্ভাব্য বিভিন্ন পথের (পছন্দ) উপর নির্ভর করে।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
//node structure of tree
struct Node {
   char data;
   Node *left, *right;
};
//creation of new node
Node *newNode(char Data){
   Node *new_node = new Node;
   new_node->data = Data;
   new_node->left = new_node->right = NULL;
   return new_node;
}
//converting ternary expression into binary tree
Node *convertExpression(string str, int & i){
   //storing current character
   Node * root =newNode(str[i]);
   //if last character, return base case
   if(i==str.length()-1)
      return root;
      i++;
   //if the next character is '?',
   //then there will be subtree for the current node
   if(str[i]=='?'){
      //skipping the '?'
      i++;
      root->left = convertExpression(str,i);
      //skipping the ':' character
      i++;
      root->right = convertExpression(str,i);
      return root;
   }
   else return root;
}
//printing the binary tree
void display_tree( Node *root){
   if (!root)
      return ;
   cout << root->data <<" ";
   display_tree(root->left);
   display_tree(root->right);
}
int main(){
   string expression = "a?b?c:d:e";
   int i=0;
   Node *root = convertExpression(expression, i);
   display_tree(root) ;
   return 0;
}

আউটপুট

a b c d e

  1. C++ এ বাইনারি ট্রিতে একটি নোডের উত্তরসূরি

  2. সাজানো তালিকাকে C++ এ বাইনারি সার্চ ট্রিতে রূপান্তর করুন

  3. C++ এ বাইনারি ট্রি-তে একটি নোডের প্রি-অর্ডার পূর্বসূরি

  4. C++ এ বাইনারি ট্রিতে একটি নোডের প্রি-অর্ডার উত্তরসূরি