কম্পিউটার

সি প্রোগ্রাম লিঙ্ক করা তালিকার দৈর্ঘ্য খুঁজে বের করতে


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

সি প্রোগ্রাম লিঙ্ক করা তালিকার দৈর্ঘ্য খুঁজে বের করতে

লিঙ্ক করা তালিকার প্রকারগুলি

লিঙ্ক করা তালিকার চার প্রকার রয়েছে, যা নিম্নরূপ -

  • একক / এককভাবে লিঙ্ক করা তালিকা
  • দ্বিগুণ / দ্বিগুণ লিঙ্কযুক্ত তালিকা
  • বৃত্তাকার একক লিঙ্ক তালিকা
  • বৃত্তাকার ডবল লিঙ্ক তালিকা

পুনরাবৃত্ত পদ্ধতি ব্যবহার করে আমরা লিঙ্কযুক্ত তালিকার দৈর্ঘ্য খুঁজে বের করতে যে যুক্তিটি ব্যবহার করেছি তা হল −

int length(node *temp){
   if(temp==NULL)
      return l;
   else{
      l=l+1;
      length(temp->next);
   }
}

প্রোগ্রাম

লিঙ্ক করা তালিকার দৈর্ঘ্য খুঁজে বের করার জন্য সি প্রোগ্রামটি নিচে দেওয়া হল −

#include <stdio.h>
#include <stdlib.h>
typedef struct linklist{
   int data;
   struct linklist *next;
}node;
int l=0;
int main(){
   node *head=NULL,*temp,*temp1;
   int len,choice,count=0,key;
   do{
      temp=(node *)malloc(sizeof(node));
      if(temp!=NULL){
         printf("\nenter the elements in a list : ");
         scanf("%d",&temp->data);
         temp->next=NULL;
         if(head==NULL){
            head=temp;
         }else{
            temp1=head;
            while(temp1->next!=NULL){
               temp1=temp1->next;
            }
            temp1->next=temp;
         }
      }else{
         printf("\nMemory is full");
      }
      printf("\npress 1 to enter data into list: ");
      scanf("%d",&choice);
   }while(choice==1);
   len=length(head);
   printf("The list has %d no of nodes",l);
   return 0;
}
//recursive function to find length
int length(node *temp){
   if(temp==NULL)
      return l;
   else{
      l=l+1;
      length(temp->next);
   }
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

Run 1:
enter the elements in a list: 3
press 1 to enter data into list: 1
enter the elements in a list: 56
press 1 to enter data into list: 1
enter the elements in a list: 56
press 1 to enter data into list: 0
The list has 3 no of nodes
Run 2:
enter the elements in a list: 12
press 1 to enter data into list: 1
enter the elements in a list: 45
press 1 to enter data into list: 0
The list has 2 no of nodes

  1. সি প্রোগ্রামে একটি লিঙ্কযুক্ত তালিকার শেষ থেকে n'th নোডের জন্য প্রোগ্রাম

  2. C++ এ লিঙ্ক করা তালিকায় লুপের দৈর্ঘ্য খুঁজুন

  3. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকার আকার খোঁজার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে