কম্পিউটার

ব্যঞ্জনবর্ণ এবং স্বরবর্ণের নোডগুলিকে C++ এ লিঙ্ক করা তালিকায় সাজান?


এই কৌশলে, আমরা স্বরবর্ণযুক্ত নোডগুলিকে শুরুতে কী হিসাবে এবং শেষ পর্যন্ত ব্যঞ্জনবর্ণ স্থানান্তর করি। এক্ষেত্রেও আমরা শৃঙ্খলা বজায় রাখি। উদাহরণ নিচে দেওয়া হল -

Input: A-M-A-Z-O-N
Output: A-A-O-M-Z-N
Code (Complexity: O(N), Space O(1))

উদাহরণ

#include<iostream>
using namespace std;
class Node1{
   public:
   char var1;
   Node1 *next1;
   Node1(char v,Node1 *next1=NULL):var1(v),next1(next1){}
};
Node1 *make_list(char array1[],int size1){
   if(size1 ==0)
   return NULL;
   else {
      Node1 *head = new Node1('o');
      Node1 *temp = head;
      for(int i=0;i<size;++i) {
         temp->next1 = new Node1(array1[i]);
         temp=temp->next1;
      }
      temp=head;
      head = head->next1;
      delete temp;
      return head;
   }
}
void print_list(Node1 *head){
   while(head){
      cout<<head->var1<<"--";
      head = head->next1;
   }
   cout<<"END"<<endl;
}
void insertAfter(Node1** temp,Node1 *n){
   n->next1 = (*temp)->next1;
   (*temp)->next1 = n;
}
bool isVowel(char v){
   switch(v){
      case 'A':
      case 'E':
      case 'I':
      case 'O':
      case 'U':
      return true;
      default:
      return false;
   }
}
Node1 *groupByVowels(Node1 *head){
   Node1 *vowel=NULL,*consonant=NULL;
   vowel = new Node1('L');
   consonant = new Node1('C');
   Node1 *tv = vowel,*tc=consonant;
   for(Node1 *temp=head;temp;){
      Node1 *tt = temp->next1;
      if(isVowel(temp->var1)){
         insertAfter(&tv,temp);
         tv = tv->next1;
      }
   Else {
         insertAfter(∓tc,temp);
         tc=tc->next1;
      }
   temp = tt;
   }
   tv->next1 = consonant->next1;
   tv = vowel;
   vowel=vowel->next1;
   delete tv;
   return vowel;
}
int main(){
   char array1[] = {'A','M','A','Z','O','N'};
   Node1 *head = make_list(array1,sizeof(array1)/sizeof(array1[0]));
   print_list(head);
   head = groupByVowels(head);
   print_list(head);
}

আউটপুট

A--M--A--Z--O--N--END
A--A--O--M--Z--N--END

  1. C++ এ সার্কুলার লিঙ্কড লিস্টের নোডের সমষ্টি

  2. C++ এ লিঙ্ক করা তালিকার বিকল্প নোডের যোগফল

  3. C++ এ সার্কুলার লিঙ্ক তালিকায় নোড গণনা করুন

  4. C++ এ পুনরাবৃত্তি ব্যবহার করে লিঙ্ক করা তালিকার বিকল্প নোড প্রিন্ট করুন