Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी भाषा में रैखिक डेटा संरचना कतार की व्याख्या करें

डेटा संरचना संरचित तरीके से व्यवस्थित डेटा का संग्रह है। इसे नीचे बताए अनुसार दो प्रकारों में बांटा गया है -

  • रैखिक डेटा संरचना - डेटा को एक रेखीय तरीके से व्यवस्थित किया जाता है। उदाहरण के लिए, सरणियाँ, संरचनाएँ, ढेर, कतारें, लिंक्ड सूचियाँ।

  • गैर-रेखीय डेटा संरचना - डेटा को एक श्रेणीबद्ध तरीके से व्यवस्थित किया जाता है। उदाहरण के लिए, पेड़, ग्राफ, सेट, टेबल।

कतार

यह एक रेखीय डेटा संरचना है, जहां सम्मिलन पीछे के छोर पर किया जाता है और विलोपन सामने के छोर पर किया जाता है।

सी भाषा में रैखिक डेटा संरचना कतार की व्याख्या करें

कतार का क्रम है फीफो - फर्स्ट इन फर्स्ट आउट

ऑपरेशन

  • सम्मिलित करें - एक कतार में एक तत्व सम्मिलित करना।
  • हटाएं - कतार से किसी तत्व को हटाना।

शर्तें

  • क्यू ओवर फ्लो - एक एलिमेंट को पूरी क्यू में डालने की कोशिश कर रहा है।

  • प्रवाह के तहत कतार - एक खाली कतार से एक तत्व को हटाने की कोशिश कर रहा है।

एल्गोरिदम

सम्मिलन के लिए एक एल्गोरिथम नीचे दिया गया है ( ) -

  • कतार ओवरफ्लो की जांच करें।
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]);

कार्यक्रम

सरणियों का उपयोग करके कतार के कार्यान्वयन के लिए सी कार्यक्रम निम्नलिखित है -

#include<limits.h>
#include<stdio.h>
#include <stdlib.h>
struct Queue {
   int front, rear, size;
   unsigned capacity;
   int* array;
};
struct Queue* createQueue(unsigned capacity){
   struct Queue* queue = (struct Queue*)malloc(
   sizeof(struct Queue));
   queue->capacity = capacity;
   queue->front = queue->size = 0;
   queue->rear = capacity - 1;
   queue->array = (int*)malloc(
   queue->capacity * sizeof(int));
   return queue;
}
//if queue is full
int isFull(struct Queue* queue){
   return (queue->size == queue->capacity);
}
// Queue is empty
int isEmpty(struct Queue* queue){
   return (queue->size == 0);
}
void Equeue(struct Queue* queue, int item){
   if (isFull(queue))
      return;
   queue->rear = (queue->rear + 1)
   % queue->capacity;
   queue->array[queue->rear] = item;
   queue->size = queue->size + 1;
   printf("%d entered into queue\n", item);
}
int Dqueue(struct Queue* queue){
   if (isEmpty(queue))
      return INT_MIN;
   int item = queue->array[queue->front];
   queue->front = (queue->front + 1)
   % queue->capacity;
   queue->size = queue->size - 1;
   return item;
}
// Function to get front of queue
int front(struct Queue* queue){
   if (isEmpty(queue))
      return INT_MIN;
      return queue->array[queue->front];
   }
   // Function to get rear of queue
   int rear(struct Queue* queue){
      if (isEmpty(queue))
         return INT_MIN;
   return queue->array[queue->rear];
}
int main(){
   struct Queue* queue = createQueue(1000);
   Equeue(queue, 100);
   Equeue(queue, 200);
   Equeue(queue, 300);
   Equeue(queue, 400);
   printf("%d is deleted element from queue\n\n",
   Dqueue(queue));
   printf("1st item in queue is %d\n", front(queue));
   printf("last item in queue %d\n", rear(queue));
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

100 entered into queue
200 entered into queue
300 entered into queue
400 entered into queue
100 is deleted element from queue
1st item in queue is 200
last item in queue 400

  1. संरचना अवधारणा का उपयोग करके सी भाषा में बिट फ़ील्ड की व्याख्या करें

    बिट फ़ील्ड का उपयोग बिट्स के संदर्भ में चर के आकार को निर्दिष्ट करने के लिए किया जाता है। आम तौर पर, इसे एक संरचना के अंदर परिभाषित किया जाता है। बिट फ़ील्ड:1 बाइट=8 बिट उदाहरण के लिए, एक उदाहरण नीचे समझाया गया है - Struct info{    int x:2; }; यहाँ, x 2बिट्स पर कब्जा कर रहा है। किसी

  1. C भाषा में फंक्शन के टॉप-डाउन डिज़ाइन और स्ट्रक्चर चार्ट की व्याख्या करें

    एक फ़ंक्शन एक स्व-निहित ब्लॉक है जो एक विशिष्ट अच्छी तरह से परिभाषित कार्य करता है। फायदे सी भाषा में कार्यों में शामिल हैं - पुन:प्रयोज्य। कार्यक्रम की अवधि कम की जा सकती है। किसी भी दोषपूर्ण फ़ंक्शन का पता लगाना और ढूंढना आसान है। यह टॉप-डाउन मॉड्यूलर प्रोग्रामिंग की सुविधा देता है। टॉप डाउन डि

  1. हाफेज डेटा संरचना

    परिचय टेम्पलेट पैरामीटर या हाफएज डेटा संरचना (हाफएजडीएस के रूप में संक्षिप्त) के लिए एक एचडीएस को किनारे-केंद्रित डेटा संरचना के रूप में परिभाषित किया गया है, जो शिखर, किनारों और चेहरों की घटनाओं की जानकारी को बनाए रखने में सक्षम है, जैसे कि प्लानर मैप्स, पॉलीहेड्रा, या अन्य उन्मुख, द्वि-आयामी यादृ