কম্পিউটার টিউটোরিয়াল

C++-এ রিকার্সিভলি ওয়ার্ড লিস্ট থেকে বাক্য গঠন করুন


একটি ওয়ার্ড লিস্ট দেওয়া। লক্ষ্য হলো রিকার্সিভ পদ্ধতি ব্যবহার করে লিস্ট থেকে শব্দ নিয়ে তৈরি হতে পারে সকল সম্ভাব্য বাক্য প্রিন্ট করা। আপনি একটিবারে দুটি লিস্ট থেকে একটি শব্দ নিতে পারেন।

বিভিন্ন ইনপুট আউটপুট সিনেরিও দেখি

ইনপুট −

sentence[row][col] = {{"I", "You"},    {"Do", "do not like"},    {"walking", "eating"}}

আউটপুট   −

I Do walking I Do eating I like walking I like eating You Do walking You Do eating You like walking You like eating

ব্যাখ্যা − sentence[0-2]-এ서 প্রতিটি লিস্ট থেকে একটি শব্দ নিলে উপরের বাক্যগুলো তৈরি হয়।

ইনপুট −

sentence[row][col] = {{"work", "live"},{"easy", "happily"}}

আউটপুট −

work easy work happily live easy live happily

ব্যাখ্যা − sentence[0-1]-এ서 প্রতিটি লিস্ট থেকে একটি শব্দ নিলে উপরের বাক্যগুলো তৈরি হয়।

  • স্ট্রিং টাইপের 2-D অ্যারে ডিক্লেয়ার sentence[row][col] হিসেবে। Recursive_Print(sentence) ফাংশনে ডেটা পাস।

  • Recursive_Print(sentence) ফাংশনের ভিতরে

    • স্ট্রিং টাইপের অ্যারে ডিক্লেয়ার arr[row] হিসেবে।

    • i ০ থেকে col-১ পর্যন্ত FOR লুপ চালাব। লুপের ভিতরে চেক IF sentence[0][i] খালি নয় তবে Recursion(sentence, 0, i, arr) ফাংশন কল।

  • Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row]) ফাংশনের ভিতরে

    • arr[temp_1] = sentence[temp_1][temp_2] সেট।

    • চেক IF temp_1 == row - 1 তবে i ০ থেকে row-১ পর্যন্ত FOR লুপ চালাব। লুপের ভিতরে arr[i] প্রিন্ট।

    • i ০ থেকে col-১ পর্যন্ত FOR লুপ চালাব। লুপের ভিতরে চেক IF sentence[temp_1+1][i] স্পেস নয় তবে Recursion(sentence, temp_1+1, i, arr) রিকার্সিভ কল।

  • ফলাফল প্রিন্ট।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি

উদাহরণ

#include<bits/stdc++.h> #define row 3 #define col 3 using namespace std; void Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row]){     arr[temp_1] = sentence[temp_1][temp_2];     if(temp_1 == row - 1){       for(int i=0; i < row; i++){           cout << arr[i] << " ";       }       cout << endl;       return;     }     for(int i=0; i < col; i++){       if(sentence[temp_1+1][i] != ""){           Recursion(sentence, temp_1+1, i, arr);       }     } } void Recursive_Print(string sentence[row][col]){     string arr[row];     for(int i=0; i < col; i++){       if(sentence[0][i] != ""){           Recursion(sentence, 0, i, arr);       }     } } int main(){     string sentence[row][col] = {{"Ajay", "sanjay"},{"Like", "is"},{"Reading", "eating"}};     Recursive_Print(sentence);     return 0; }

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে

Ajay Like Reading Ajay Like eating Ajay is Reading Ajay is eating sanjay Like Reading sanjay Like eating sanjay is Reading sanjay is eating

  1. C++-এ বাইনারি ট্রির সব লিফ নোড ডান থেকে বাম প্রিন্ট করা

  2. C++-এ একটি নির্দিষ্ট নোড থেকে দূরত্ব k-এ থাকা সব নোড প্রিন্ট করা

  3. C++-এ লিফ নোড থেকে দূরত্ব k-এ থাকা সব নোড প্রিন্ট করা

  4. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে