Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Stack क्लास उदाहरणों के साथ

Stack<T> क्लास ऑब्जेक्ट्स के सिंपल लास्ट-इन-फर्स्ट-आउट (LIFO) नॉन-जेनेरिक संग्रह को दर्शाता है।

Stack गुण

गुणविवरण
CountStack में समाहित एलिमेंट्स की संख्या
IsSynchronizedक्या Stack का एक्सेस सिंक्रोनाइज़्ड (थ्रेड-सेफ) है
SyncRootStack तक एक्सेस सिंक्रोनाइज़ करने के लिए उपयोग होने वाला ऑब्जेक्ट

Stack मेथड्स

मेथडविवरण
Clear()Stack से सभी ऑब्जेक्ट्स हटाता है
Clone()Stack की शैलो कॉपी बनाता है
Contains(Object)क्या एलिमेंट Stack में है
CopyTo(Array, Int32)Stack को मौजूदा ऐरे में कॉपी करता है
Equals(Object)निर्दिष्ट ऑब्जेक्ट वर्तमान ऑब्जेक्ट के बराबर है?
GetEnumerator()Stack के लिए IEnumerator लौटाता है
GetHashCode()डिफ़ॉल्ट हैश फंक्शन
GetType()वर्तमान इंस्टेंस का Type प्राप्त करता है
Peek()शीर्ष ऑब्जेक्ट लौटाता है (बिना हटाए)
Pop()शीर्ष ऑब्जेक्ट हटाता है और लौटाता है
Push(Object)शीर्ष पर ऑब्जेक्ट इन्सर्ट करता है

उदाहरण 1: 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());  // J
    }
}

आउटपुट

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

उदाहरण 2: 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

नोट: आउटपुट में टाइपो

मूल आउटपुट में "40400" टाइपो है, सही है "400"।

पूर्ण उदाहरण: सभी ऑपरेशन्स

using System;
using System.Collections.Generic;

public class StackDemo {
    public static void Main() {
        var stack = new Stack<string>();
        
        // Push
        stack.Push("First");
        stack.Push("Second");
        stack.Push("Third");
        Console.WriteLine($"After Push: Count={stack.Count}, Top={stack.Peek()}");
        
        // Contains
        Console.WriteLine($"Contains 'Second': {stack.Contains("Second")}");
        
        // Pop
        string popped = stack.Pop();
        Console.WriteLine($"Popped: {popped}, New Top: {stack.Peek()}");
        
        // Clear
        stack.Clear();
        Console.WriteLine($"After Clear: Count={stack.Count}");
        
        // ToArray
        stack.Push("A");
        stack.Push("B");
        string[] arr = stack.ToArray();
        Console.WriteLine("Array: " + string.Join(", ", arr));  // B, A
    }
}

जेनेरिक vs नॉन-जेनेरिक

  • Stack<T> (System.Collections.Generic): टाइप-सेफ, बेहतर पेरफॉरमेंस, अनुशंसित
  • Stack (System.Collections): नॉन-जेनेरिक, object स्टोर करता है, लिगेसी

थ्रेड सेफ्टी

// मैन्युअल लॉकिंग
lock (stack.SyncRoot) {
    stack.Push(item);
}

// या ConcurrentStack (लॉक-मुक्त)
using System.Collections.Concurrent;
var concurrentStack = new ConcurrentStack<string>();
concurrentStack.Push("item");
concurrentStack.TryPop(out string result);
  1. - C# में स्टैक क्लास में Push और Pop ऑपरेशन

    Stack क्लास ऑब्जेक्ट्स के लास्ट-इन, फर्स्ट-आउट कलेक्शन को दर्शाता है। इसका उपयोग तब किया जाता है जब आपको आइटम्स की लास्ट-इन, फर्स्ट-आउट एक्सेस की आवश्यकता होती है।Stack क्लास की प्रॉपर्टी:Count - स्टैक में एलिमेंट्स की संख्या प्राप्त करता है।Push ऑपरेशनPush ऑपरेशन का उपयोग करके स्टैक में एलिमेंट्स ज

  1. - C# प्रोग्राम: Push और Pop ऑपरेशन्स के साथ स्टैक का कार्यान्वयन

    Push ऑपरेशन के साथ स्टैक सेट करें ताकि स्टैक में एलिमेंट्स जोड़े जा सकें:Stack st = new Stack(); st.Push(A); st.Push(M); st.Push(G); st.Push(W);स्टैक से एलिमेंट्स को पॉप करने के लिए Pop() मेथड का उपयोग करें:st.Pop();st.Pop();निम्न उदाहरण Push और Pop ऑपरेशन्स के साथ स्टैक को कार्यान्वित करता है:उदाहर

  1. - पायथन में स्टैक समझाया गया उदाहरण सहित

    स्टैक एक लीनियर डेटा स्ट्रक्चर है जो लास्ट इन फर्स्ट आउट मैकेनिज्म (LIFO) पर काम करता है। जो एलिमेंट स्टैक में पहले प्रवेश करता है वह अंतिम प्रोसेस होता है। उदाहरण स्टैक डेटा स्ट्रक्चर को व्यंजनों के स्टैक के उदाहरण से समझा जा सकता है। व्यंजनों को एक के ऊपर एक ढेर किया जाता है। पहली प्लेट या डिश ढ