কম্পিউটার

C ভাষায় লিঙ্ক করা তালিকা ব্যবহার করে সারি ব্যাখ্যা করুন


লিঙ্ক করা তালিকা ব্যবহার করে সারি ওভারফ্লো এবং প্রবাহের অধীনে সারি এড়ানো যেতে পারে।

C প্রোগ্রামিং ভাষায় লিঙ্ক করা তালিকার সাহায্যে সারির অধীনে পরিচালিত অপারেশনগুলি নিম্নরূপ -

  • ঢোকান
  • মুছুন

সন্নিবেশ

সিনট্যাক্স নিম্নরূপ -

সিনট্যাক্স

&item :
Newnode = (node*) mallac (sizeof (node));
newnode ->data = item;
newnode ->link = NULL;
if ((front = = NULL) || (rear = = NULL)){
   front= newnode;
   rear = newnode;
}else{
   Rear->link = newnode;
   rear = newnode;
}

মোছা

সিনট্যাক্স নিম্নরূপ -

সিনট্যাক্স

if ((front= = NULL))
printf("Deletion is not possible, Queue is empty");
else{
   temp = front;
   front = front ->link;
   free (temp);
}

প্রদর্শন

সিনট্যাক্স নিম্নরূপ -

সিনট্যাক্স

while (front! = NULL){
   printf("%d", front ->data);
   front = front->link;
}

প্রোগ্রাম

লিঙ্কযুক্ত তালিকাগুলি −

ব্যবহার করে সারির জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
#include <stdio.h>
#include <stdlib.h>
struct node{
   int info;
   struct node *ptr;
}*front,*rear,*temp,*front1;
int frontelement();
void enq(int data);
void deq();
void display();
void create();
int count = 0;
void main(){
   int no, ch, e;
   printf("\n 1 - Enqueue");
   printf("\n 2 - Dequeue");
   printf("\n 3 - Display");
   printf("\n 4 - Exit");
   printf("\n 5-front");
   create();
   while (1){
      printf("\n Enter choice : ");
      scanf("%d", &ch);
      switch (ch){
         case 1:
            printf("Enter data : ");
         scanf("%d", &no);
         enq(no);
         break;
         case 2:
            deq();
         break;
         case 3:
            display();
         break;
         case 4:
            exit(0);
         break;
         case 5:
            e = frontelement();
         if (e != 0)
            printf("Front element : %d", e);
         else
            printf("\n No front element in Queue");
         break;
         default:
         printf("Wrong choice, Try again ");
         break;
      }
   }
}
void enq(int data){
   if (rear == NULL){
      rear = (struct node *)malloc(1*sizeof(struct node));
      rear->ptr = NULL;
      rear->info = data;
      front = rear;
   }else{
      temp=(struct node *)malloc(1*sizeof(struct node));
      rear->ptr = temp;
      temp->info = data;
      temp->ptr = NULL;
      rear = temp;
   }
   count++;
}
void display(){
   front1 = front;
   if ((front1 == NULL) && (rear == NULL)){
      printf("Queue is empty");
      return;
   }
   while (front1 != rear){
      printf("%d ", front1->info);
      front1 = front1->ptr;
   }
   if (front1 == rear)
      printf("%d", front1->info);
   }
   void deq(){
      front1 = front;
      if (front1 == NULL){
         printf("\n Error");
         return;
      }
      else
      if (front1->ptr != NULL){
         front1 = front1->ptr;
         printf("\n Dequeued value : %d", front->info);
         free(front);
         front = front1;
      }else{
         printf("\n Dequeued value : %d", front->info);
         free(front);
         front = NULL;
      rear = NULL;
   }
   count--;
}
int frontelement(){
   if ((front != NULL) && (rear != NULL))
      return(front->info);
   else
      return 0;
}

আউটপুট

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

1 - Enque
2 - Deque
3 – Display
4 - Exit
5 - Front element
Enter choice: 1
Enter data: 14
Enter choice: 1
Enter data: 85
Enter choice: 1
Enter data: 38
Enter choice: 5
Front element: 14
Enter choice: 3
14 85 38
Enter choice: 2
Dequed value: 14
Enter choice: 3
Enter choice: 4

  1. সি ভাষায় সুইচ স্টেটমেন্ট ব্যাখ্যা কর

  2. গঠন ধারণা ব্যবহার করে সি ভাষায় বিট ক্ষেত্র ব্যাখ্যা করুন

  3. সি-তে লিঙ্ক করা তালিকা ব্যবহার করে অগ্রাধিকার সারি

  4. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে অগ্রাধিকার সারি