কম্পিউটার

C++ এ দুটি ট্রাভার্সাল এবং একটি ট্রাভার্সাল ব্যবহার করে অ্যারে থেকে একটি উপাদান মুছবেন?


দুটি ট্রাভার্সাল

আসুন প্রথমে মূল অ্যারে এবং অ্যারে থেকে অনুসন্ধান এবং মুছে ফেলার উপাদানটি সংজ্ঞায়িত করি -

int ele = 5;
int arr = [1,2,3,4];

এখন আমরা প্রদত্ত এলিমেন্ট −

খুঁজতে অ্যারেতে লুপ করি
for (i=0; i<length; i++)
   if (arr[i] == ele) break;

যদি প্রদত্ত উপাদানের অবস্থান পাওয়া যায় তবে আমরা উপাদানগুলিকে বামে স্থানান্তরিত করি যা পাওয়া উপাদানটির ডানদিকে রয়েছে −

if (i < length) {
   length--;
      for (int j=i; j<length; j++)
         arr[j] = arr[j+1];
}

উদাহরণ

দুটি ট্রাভার্সাল -

অ্যারের মধ্যে এলিমেন্ট মুছে ফেলার জন্য আমরা নিম্নলিখিত বাস্তবায়ন দেখি
#include<iostream>
using namespace std;

int main() {
   int arr[] = {11, 15, 6, 8, 9, 10};
   int length = sizeof(arr)/sizeof(arr[0]);
   int ele = 6;

 int i;
   for (i=0; i<length; i++)
      if (arr[i] == ele) break;

   if (i < length) {
   length--;
      for (int j=i; j<length; j++)
         arr[j] = arr[j+1];
   }
   cout << "The array after deletion is "<<endl;
   for (int i=0; i<length; i++)
      cout << arr[i] << " ";

   return 0;
}

আউটপুট

উপরের কোডটি নিম্নলিখিত আউটপুট −

তৈরি করবে
The array after deletion is
11 15 8 9 10

এক ট্রাভার্সাল

আসুন প্রথমে মূল অ্যারে এবং অ্যারে থেকে অনুসন্ধান এবং মুছে ফেলার উপাদানটি সংজ্ঞায়িত করি -

int ele = 15;
int arr = [11,15,6,8,9,10];

এখন আমরা দুটি ভেরিয়েবল বুলিয়ান পাওয়া ঘোষণা করি যা নির্দিষ্ট করে যদি উপাদানটি পাওয়া যায় কি না এবং int pos যা পাওয়া গেলে উপাদান অবস্থান সংরক্ষণ করবে -

bool found=false;
int pos=-1;

এর পরে, আমরা অ্যারে অনুসন্ধান করি এবং যদি একটি উপাদান পাওয়া যায় তবে আমরা তার অবস্থান সংরক্ষণ করি এবং উপাদানগুলিকে স্থানান্তর করি যখন আমাদের লুপ এককভাবে অতিক্রম করে।

for (int i=0; i<length; i++){
   if(pos!=-1){
      arr[pos]=arr[pos+1];
      j++;
   }
   else if(arr[i]==ele){
      pos=i;
      found=true;
   }
}

উদাহরণ

শুধুমাত্র একটি ট্রাভার্সাল-এ অ্যারের এলিমেন্ট মুছে ফেলার জন্য আমরা নিম্নলিখিত বাস্তবায়ন দেখি -

#include<iostream>
using namespace std;

int main() {
   int arr[] = {11, 15, 6, 8, 9, 10};
   int length = sizeof(arr)/sizeof(arr[0]);
   int ele = 6 ;

bool found=false;
int pos=-1;
   for (int i=0; i<length; i++){
      if(pos!=-1){
         arr[pos]=arr[pos+1];
         pos++;
      }
      else if(arr[i]==ele){
         pos=i;
         found=true;
      }
   }
   cout << "The array after deletion is "<<endl;
   if(found){
      length--;
   }
   for (int i=0; i<length; i++)
      cout << arr[i] << " ";
   return 0;
}

আউটপুট

উপরের কোডটি নিম্নলিখিত আউটপুট −

তৈরি করবে
The array after deletion is
11 15 8 9 10

  1. C++ এ pthreads ব্যবহার করে একটি খুব বড় অ্যারেতে সর্বাধিক উপাদান

  2. C++ এ একটি অ্যারের অঙ্ক থেকে গঠিত দুটি সংখ্যার ন্যূনতম যোগফল

  3. C++ এ শর্তসাপেক্ষ অপারেটর ব্যবহার না করে অ্যারে থেকে সবচেয়ে বড় উপাদান খুঁজুন

  4. STL ব্যবহার করে C++ এ অ্যারে পণ্য