কম্পিউটার টিউটোরিয়াল

C ভাষায় কিউ (Queue) থেকে এলিমেন্ট ডিলিট করার ব্যাখ্যা


ডেটা স্ট্রাকচার হলো স্ট্রাকচার্ড উপায়ে সংগঠিত ডেটার সংগ্রহ। এটি নিচের মত দুই টাইপে ভাগ করা হয়:

  • লিনিয়ার ডেটা স্ট্রাকচার - ডেটা লিনিয়ার ফ্যাশনে সংগঠিত। উদাহরণ: অ্যারে, স্ট্রাকচার, স্ট্যাক, কিউ, লিংকড লিস্ট।

  • নন-লিনিয়ার ডেটা স্ট্রাকচার - ডেটা হায়ারার্কিক্যাল উপায়ে সংগঠিত। উদাহরণ: ট্রি, গ্রাফ, সেট, টেবিল।

কিউ (Queue)

এটি একটি লিনিয়ার ডেটা স্ট্রাকচার, যেখানে ইনসার্শন রিয়ার এন্ডে করা হয় এবং ডিলিশন ফ্রন্ট এন্ডে করা হয়।

C ভাষায় কিউ (Queue) থেকে এলিমেন্ট ডিলিট করার ব্যাখ্যা

কিউ-এর অর্ডার হলো FIFO - First In First Out

অপারেশন

  • ইনসার্ট - কিউ-তে একটি এলিমেন্ট ইনসার্ট করা।
  • ডিলিট - কিউ থেকে একটি এলিমেন্ট ডিলিট করা।

শর্তাবলী

  • কিউ ওভারফ্লো - পূর্ণ কিউ-তে এলিমেন্ট ইনসার্ট করার চেষ্টা।

  • কিউ অন্ডারফ্লো - খালি কিউ থেকে এলিমেন্ট ডিলিট করার চেষ্টা।

অ্যালগরিদম

ইনসার্শন ( ) এর জন্য অ্যালগরিদম নিচে দেওয়া হলো:

  • কিউ ওভারফ্লো চেক করুন।
if (r==n) printf ("Queue overflow")
  • অন্যথায়, কিউ-তে এলিমেন্ট ইনসার্ট করুন।
q[r] = item r++

ডিলিশন ( ) এর জন্য অ্যালগরিদম নিচে দেওয়া হলো:

  • কিউ অন্ডারফ্লো চেক করুন।
if (f==r) printf ("Queue under flow")
  • অন্যথায়, কিউ থেকে এলিমেন্ট ডিলিট করুন।
item = q[f] f++

ডিসপ্লে ( ) এর জন্য অ্যালগরিদম নিচে দেওয়া হলো:

  • কিউ খালি কিনা চেক করুন।
if (f==r) printf("Queue is empty")
  • অন্যথায়, 'f' থেকে 'r' পর্যন্ত সব এলিমেন্ট প্রিন্ট করুন।
for(i=f; i<r; i++) printf ("%d", q[i]);

প্রোগ্রাম

কিউ-তে এলিমেন্ট ডিলিট করার C প্রোগ্রাম:

#include <stdio.h> #define MAX 50 void insert(); int array[MAX]; int rear = - 1; int front = - 1; main(){    int add_item;    int choice;    while (1){       printf("1.Insert element to queue \n");       printf("2.Delete an element from queue\n");       printf("3.Display elements of queue \n");       printf("4.Quit \n");       printf("Enter your choice : ");       scanf("%d", &choice);       switch (choice){          case 1:             insert();          break;          case 2:             delete();          case 3:             display();          break;          case 4:             exit(1);          default:          printf("Wrong choice \n");       }    } } void insert(){    int add_item;    if (rear == MAX - 1)       printf("Queue Overflow \n");    else{       if (front == - 1)       /*If queue is initially empty */       front = 0;       printf("Inset the element in queue : ");       scanf("%d", &add_item);       rear = rear + 1;       array[rear] = add_item;    } } void display(){    int i;    if (front == - 1)       printf("Queue is empty \n");    else{       printf("Queue is : \n");       for (i = front; i <= rear; i++)          printf("%d ", array[i]);          printf("\n");    } } void delete(){    if (front == - 1 || front > rear){       printf("Queue Underflow \n");       return ;    }    else{       printf("Element deleted from queue is : %d\n",array[front]);       front = front + 1;    } }

আউটপুট

উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফলটি দেখায়:

1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 12 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 23 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 12 Queue is: 23 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 23 Queue is: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 4

  1. C ভাষায় লিনিয়ার ডেটা স্ট্রাকচার কিউ (Queue) ব্যাখ্যা

  2. সি ভাষায় পয়েন্টার দিয়ে অ্যারিথমেটিক অপারেশন

  3. C ভাষায় স্যুইচ স্টেটমেন্ট ব্যাখ্যা

  4. স্ট্রাকচার কনসেপ্ট ব্যবহার করে সি ভাষায় বিট ফিল্ড ব্যাখ্যা