কম্পিউটার

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর


ডাটা স্ট্রাকচার হল স্ট্রাকচার্ড পদ্ধতিতে সংগঠিত ডেটার সংগ্রহ। এটি দুটি প্রকারে শ্রেণীবদ্ধ করা হয়েছে যা হল লিনিয়ার ডেটা স্ট্রাকচার এবং নন-লিনিয়ার ডেটা স্ট্রাকচার।

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

লিনিয়ার ডেটা স্ট্রাকচার - এখানে, ডেটা একটি লিনিয়ার ফ্যাশনে সংগঠিত হয়।

যেমন − অ্যারে, স্ট্রাকচার, স্ট্যাক, সারি, লিঙ্ক করা তালিকা।

নন-লিনিয়ার ডেটা স্ট্রাকচার − এখানে, ডেটা ক্রমানুসারে সংগঠিত হয়।

যেমন − গাছ, গ্রাফ, সেট, টেবিল।

সি ভাষায় স্ট্যাক

এটি একটি রৈখিক ডেটা স্ট্রাকচার, যেখানে ডেটা ঢোকানো হয় এবং শুধুমাত্র এক প্রান্তে সরিয়ে দেওয়া হয়।

অপারেশনস

  • পুশ - একটি স্ট্যাকের মধ্যে একটি উপাদান সন্নিবেশ করান৷
  • পপ - একটি স্ট্যাক থেকে একটি উপাদান মুছে ফেলা।

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

সি ভাষায় স্ট্যাকের ধারণাটি ব্যাখ্যা কর

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 ভাষায় ক্যারেক্টার অপারেশন ব্যাখ্যা কর

  2. সি ভাষায় ইউনিয়নকে পয়েন্টার ব্যাখ্যা কর

  3. সি ল্যাঙ্গুয়েজে পয়েন্টার এক্সেসিংয়ের ধারণাটি ব্যাখ্যা কর

  4. C# এ একটি শ্রেণীর ধারণা ব্যাখ্যা কর।