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

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

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

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

रैखिक डेटा संरचना - यहां, डेटा को एक रेखीय तरीके से व्यवस्थित किया जाता है।

उदाहरण के लिए - सरणियाँ, संरचनाएँ, ढेर, कतारें, लिंक्ड सूचियाँ।

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

उदाहरण के लिए - पेड़, ग्राफ, सेट, टेबल।

सी भाषा में स्टैक करें

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

ऑपरेशन

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

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

सी भाषा में स्टैक की अवधारणा की व्याख्या करें

Deleted element = 50
Item = a [top]
top --
  • पॉप (), पॉप (), पॉप (), पॉप ()
Deleted element = 40
Deleted element=30
Deleted element=20
Deleted element =10
  • पॉप ( )

प्रवाह के तहत ढेर

शर्तें

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

  • प्रवाह के तहत ढेर - एक खाली ढेर से एक तत्व को हटाने का प्रयास करें।

पुश के लिए एल्गोरिदम ( ), पॉप ( ), प्रदर्शन ( )

संबंधित एल्गोरिदम इस प्रकार हैं -

पुश ( )

  • स्टैक ओवरफ्लो की जांच करें।
if (top = = n-1)
printf("stack over flow”);
  • अन्यथा, स्टैक में एक तत्व डालें।
top ++
a[top] = item

पॉप ( )

  • स्टैक अंडरफ्लो की जांच करें।
if ( top = = -1)
printf( "stack under flow”);
  • अन्यथा, तत्व को स्टैक से हटा दें।
item = a[top]
top --

डिस्प्ले ( )

  • स्टैक प्रवाह की जांच करें।
if (top == -1)
printf ("stack is empty”);
  • अन्यथा, नीचे दिए गए एल्गोरिथम का पालन करें -
for (i=0; i<top; i++)
printf ("%d”, a[i]);

उदाहरण

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

#include<stdio.h>
#include <conio.h>
int top = -1, n,a[100];
main ( ){
   int ch;
   void pop ( );
   void display ( );
   clrscr ( );
   printf ("enter the size of the stack”);
   scanf ("%d”, &n);
   printf("stack implementation\n”);
   printf ("1. push \n”);
   printf ("2. Pop \n”);
   printf ("3. exit \n”);
   do{
      printf ( "enter ur choice”);
      scanf ("%d”, &ch);
      switch (ch){
         case 1 : push ( );
         display ( );
         break;
      case 2 : push ( );
         display ( );
         break;
      case 3 : exit
   }
   }while (ch>=1 | | ch<= 3);
   getch ( );
}
void push ( ){
   int item;
   if (top = = n-1)
      printf ( "stack over flow”)
   else{
      printf("enter an element for insertion”)
      scanf ("%d”, &item);
      top ++;
      a[top] = item;
   }
}
void pop ( ){
   int item;
   if (top = = -1);
      printf ( "stack under flow”);
   else{
      item = a[top];
      top --;
      printf("deleted element = %d”, item);
   }
}
void display ( ){
   int i;
   if (top = = -1)
      printf ( "stack is empty”);
   else{
      printf("contents of the stack are”);
      for (i=0; i<top; i++)
         printf ("%d \t”, a[i]);
   }
}

आउटपुट

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

enter the size of the stack = 5 [given by user]
Stack implementation
1. Push 2. Pop 3. exit
Enter ur choice : 1 [given by user]
Enter an element for insertion : 10
Contents of the stack : 10
Enter ur choice : 1
Enter an element for insertion : 2
Contents of the stack : 10 20
Enter ur choice : 2
Deleted element = 20
Contents of the stack are : 10
Enter ur choice : 2
Deleted element : 10
Contents of the stack are : stack is empty
Enter ur choice : 2
Stack underflow.
Enter ur choice : 1
Enter an element for insertion : 30
Contents of the stack are : 30

  1. C भाषा में यूनियन टू पॉइंटर को समझाएं

    एक यूनियन को मेमोरी लोकेशन कहा जाता है, जिसे विभिन्न प्रकार के डेटा के कई वेरिएबल द्वारा साझा किया जाता है। सिंटैक्स वाक्य रचना इस प्रकार है - union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; उदाह

  1. C भाषा में पॉइंटर एक्सेसिंग की अवधारणा की व्याख्या करें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। सूचक घोषणा, आरंभीकरण और पहुंच निम्नलिखित कथन पर विचार करें - int qty = 179; सूचक घोषित करना int *p; p एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है। सूचक का प्रारंभ एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशि

  1. C# में एक वर्ग की अवधारणा की व्याख्या करें

    सी # में एक वर्ग आवश्यक प्रकारों में से एक है। हम समस्या क्षेत्र के लिए प्रासंगिक वस्तुओं के लिए एक ब्लूप्रिंट के रूप में एक वर्ग के बारे में सोच सकते हैं। यह एक टेम्प्लेट है जिससे हम ऑब्जेक्ट बनाते हैं, संरचना और व्यवहार को परिभाषित करते हैं जो इस वर्ग से बनाए गए ऑब्जेक्ट्स के सेट द्वारा साझा किए ज