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

C#-এ Stack ক্লাস ও উদাহরণ

Stack ক্লাস (নন-জেনেরিক) একটি লাস্ট-ইন-ফার্স্ট-আউট (LIFO) কালেকশন। জেনেরিক সংস্করণ Stack<T> টাইপ সেফটি ও পারফরম্যান্সের জন্য পছন্দনীয়।

Stack-এর প্রপার্টিগুলো

ক্রমপ্রপার্টি ও বর্ণনা
1Count — স্ট্যাকে এলিমেন্ট সংখ্যা।
2IsSynchronized — থ্রেড-সেফ কিনা (সবসময় false)।
3SyncRoot — সিঙ্ক্রোনাইজেশনের জন্য অবজেক্ট।

Stack-এর মেথডসমূহ

ক্রমমেথড ও বর্ণনা
1Clear() — সব অবজেক্ট মুছে ফেলে।
2Clone() — শ্যালো কপি তৈরি করে।
3Contains(Object) — এলিমেন্ট আছে কিনা।
4CopyTo(Array, Int32) — অ্যারেতে কপি করে।
5Peek() — টপ এলিমেন্ট দেখে (মুছে ফেলে না)।
6Pop() — টপ এলিমেন্ট বের করে এবং মুছে ফেলে।
7Push(Object) — টপে এলিমেন্ট যোগ করে।
8GetEnumerator() — ইটারেটর রিটার্ন করে।

উদাহরণ ১: Peek() দিয়ে টপ এলিমেন্ট দেখা

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Stack<string> stack = new Stack<string>();
        stack.Push("A");
        stack.Push("B");
        stack.Push("C");
        stack.Push("D");
        stack.Push("E");
        stack.Push("F");
        stack.Push("G");
        stack.Push("H");
        stack.Push("I");
        stack.Push("J");

        Console.WriteLine("Count of elements = " + stack.Count);
        Console.WriteLine("Element at the top of stack = " + stack.Peek());
    }
}

আউটপুট

Count of elements = 10
Element at the top of stack = J

উদাহরণ ২: Contains() দিয়ে এলিমেন্ট চেক করা

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Stack<int> stack = new Stack<int>();
        stack.Push(100);
        stack.Push(150);
        stack.Push(175);
        stack.Push(200);
        stack.Push(225);
        stack.Push(250);
        stack.Push(300);
        stack.Push(400);
        stack.Push(450);
        stack.Push(500);

        Console.WriteLine("Elements in the Stack:");
        foreach(var val in stack) {
            Console.WriteLine(val);
        }

        Console.WriteLine("Count of elements in the Stack = " + stack.Count);
        Console.WriteLine("Does Stack has the element 400?= " + stack.Contains(400));
    }
}

আউটপুট

Elements in the Stack:
500
450
400
300
250
225
200
175
150
100
Count of elements in the Stack = 10
Does Stack has the element 400? = False

নোট

  • আউটপুটে "400?" লেখা আছে কিন্তু Contains false রিটার্ন করেছে — সম্ভবত টাইপো (40400?)। আসলে ৪০০ আছে, তাই true হওয়া উচিত।
  • Stack<T> জেনেরিক ভার্সন ব্যবহার করুন (বক্সিং/আনবক্সিং এড়াতে)।
  • Peek() খালি স্ট্যাকে কল করলে InvalidOperationException থ্রো করে।
  1. C#-এ Stack.Equals() মেথড

  2. C#-এ Stack ক্লাসে Push এবং Pop অপারেশন

  3. C# প্রোগ্রাম: Stack-এ Push এবং Pop অপারেশন বাস্তবায়ন

  4. পাইথনে স্ট্যাক (Stack) উদাহরণসহ ব্যাখ্যা