কম্পিউটার

লিঙ্ক করা তালিকায় উপাদান মুছে ফেলার ব্যাখ্যা কর


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

লিঙ্ক করা তালিকায় উপাদান মুছে ফেলার ব্যাখ্যা কর

লিঙ্ক করা তালিকায় ক্রিয়াকলাপ

সি ল্যাঙ্গুয়েজে লিংকড লিস্টে তিন ধরনের ক্রিয়াকলাপ রয়েছে, যা নিম্নরূপ −

  • সন্নিবেশ
  • মোছা
  • ট্র্যাভার্সিং

মোছা

নিচে দেওয়া একটি উদাহরণ বিবেচনা করুন -

নোড 2 মুছুন

লিঙ্ক করা তালিকায় উপাদান মুছে ফেলার ব্যাখ্যা কর

নোড 1 মুছুন

লিঙ্ক করা তালিকায় উপাদান মুছে ফেলার ব্যাখ্যা কর

নোড 3 মুছুন

লিঙ্ক করা তালিকায় উপাদান মুছে ফেলার ব্যাখ্যা কর

প্রোগ্রাম

লিঙ্ক করা তালিকার উপাদানগুলি মুছে ফেলার জন্য সি প্রোগ্রামটি নিচে দেওয়া হল -

#include <stdio.h>
#include <stdlib.h>
struct Node{
   int data;
   struct Node *next;
};
void push(struct Node** head_ref, int new_data){
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
void deleteNode(struct Node **head_ref, int position){
   //if list is empty
   if (*head_ref == NULL)
      return;
   struct Node* temp = *head_ref;
   if (position == 0){
      *head_ref = temp->next;
      free(temp);
      return;
   }
   for (int i=0; temp!=NULL && i<position-1; i++)
      temp = temp->next;
   if (temp == NULL || temp->next == NULL)
      return;
   struct Node *next = temp->next->next;
   free(temp->next); // Free memory
   temp->next = next;
}
void printList(struct Node *node){
   while (node != NULL){
      printf(" %d ", node->data);
      node = node->next;
   }
}
int main(){
   struct Node* head = NULL;
   push(&head, 7);
   push(&head, 1);
   push(&head, 3);
   push(&head, 2);
   push(&head, 8);
   puts("Created List: ");
   printList(head);
   deleteNode(&head, 3);
   puts("\n List after Deletion at position 3: ");
   printList(head);
   return 0;
}

আউটপুট

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

Created List:
8 2 3 1 7
List after Deletion at position 3:
8 2 3 7

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

  2. এককভাবে লিঙ্ক করা তালিকার নোডের পণ্য

  3. লিঙ্ক করা তালিকার বিকল্প নোডের পণ্য

  4. লিঙ্ক করা তালিকার শেষ k নোডগুলিকে C ভাষায় বিপরীত ক্রমে পুনরাবৃত্তিমূলক পদ্ধতিতে প্রিন্ট করুন