কম্পিউটার

একটি প্রদত্ত একক লিঙ্কযুক্ত তালিকার প্রথম নোড মুছে ফেলার জন্য C++ প্রোগ্রাম


একটি লিঙ্ক করা তালিকা হল একটি লিনিয়ার ডেটা স্ট্রাকচার যাতে একাধিক নোড থাকে যা একে অপরের সাথে সংযুক্ত থাকে। প্রতিটি নোড দুটি ক্ষেত্র নিয়ে গঠিত - ডেটা ক্ষেত্র এবং পরবর্তী নোডের ঠিকানা৷

ধরা যাক আমাদের একটি এককভাবে লিঙ্কযুক্ত তালিকা রয়েছে এবং আমাদের এই লিঙ্কযুক্ত তালিকা থেকে প্রথম নোডটি মুছে ফেলতে হবে। উদাহরণস্বরূপ,

ইনপুট 1 − 4 → 3 → 2 → 1

আউটপুট − 3 → 2 → 1 →

ব্যাখ্যা − '4' হল প্রদত্ত এককভাবে লিঙ্ক করা তালিকার প্রথম নোড। প্রথম নোড মুছে ফেলার পরে, লিঙ্ক করা তালিকা হবে 3→2→1.

ইনপুট 2৷ − 1 → 2 → 3 →

আউটপুট − 2 → 3 →

ব্যাখ্যা − প্রথম নোড '1' মুছে ফেলার পরে, লিঙ্ক করা তালিকা হবে 2 → 3৷

এই সমস্যা সমাধানের পদ্ধতি

প্রাথমিকভাবে, আমাদের কাছে একটি লিঙ্কযুক্ত তালিকা রয়েছে যা নোড নিয়ে গঠিত। প্রতিটি নোডে পরবর্তী নোডের ডেটা এবং ঠিকানা থাকে। লিঙ্ক করা তালিকায় ডেটা সন্নিবেশ করার পরে, আমরা প্রথম নোডটি মুছে ফেলার জন্য একটি ফাংশন তৈরি করব।

এইভাবে, আমরা একটি অস্থায়ী পয়েন্টার তৈরি করব যা প্রাথমিকভাবে মাথার দিকে নির্দেশ করে এবং মাথাটিকে পরবর্তী নোডে নিয়ে যায়। এখন অস্থায়ী নোডটি মুছুন এবং লিঙ্ক করা তালিকাটি ফিরিয়ে দিন।

  • একটি ফাংশন deleteAthead(node*&head) পয়েন্টারটিকে মাথায় নিয়ে যায় এবং লিঙ্ক করা তালিকার প্রথম নোডটি মুছে দেয়।

  • একটি অস্থায়ী পয়েন্টার তৈরি করুন যা প্রাথমিকভাবে মাথার দিকে নির্দেশ করে।

  • মাথা পরবর্তী নোডে চলে যায়।

  • অস্থায়ী পয়েন্টার মুছুন।

  • লিঙ্ক করা তালিকা ফেরত দিন।

উদাহরণ

#include<iostream>
using namespace std;
int main(){
class node{
   public:
      int data;
      node*next;
      node(int d){
         data=d;
         node*next=NULL;
      }
};
void insertAtFirstNode(node*&head, int data){
   node*n= new node(data);
   n->next= head;
   head=n;
}
void print(node*head){
   while(head!=NULL){
      cout<<head->data<<"->";
      head=head->next;
   }
   cout<<endl;
}
void deleteAtFirst(node*&head){
   if(head==NULL){
      return;
   }
   node*temp=head;
   head= head->next;
   delete temp;
   return;
}
int main(){
   node*head= NULL;
   insertAtFirstNode(head,1);
   insertAtFirstNode(head,2);
   insertAtFirstNode(head,3);
   insertAtFirstNode(head,4);
   deleteAtFirst(head);
   print(head);
}

আউটপুট

উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,

3 → 2 → 1 →

যেহেতু প্রদত্ত এককভাবে লিঙ্ক করা তালিকাটি হল 4 → 3 → 2 → 1 →, প্রথম নোডটি মুছে ফেলার পরে যা 4, লিঙ্কযুক্ত তালিকাটি হয়ে যাবে, 3 → 2 → 1 →


  1. C++ এ একটি প্রদত্ত অবস্থানে একটি দ্বিগুণ লিঙ্কযুক্ত তালিকা নোড মুছুন

  2. C++ এ প্রদত্ত লিঙ্কযুক্ত তালিকার প্রথম k নোডের গুণফল খুঁজুন

  3. সার্কুলার সিঙ্গলি লিংকড লিস্ট বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. এককভাবে লিঙ্কযুক্ত তালিকা বাস্তবায়নের জন্য সি++ প্রোগ্রাম