Στοίβα C# με Παραδείγματα Push & Pop

Τι είναι το Stack σε C#;

Η στοίβα είναι μια συλλογή ειδικής θήκης που αντιπροσωπεύει μια ιδέα τελευταίας εισόδου (LIFO). Για να καταλάβετε πρώτα το LIFO, ας πάρουμε ένα παράδειγμα. Φανταστείτε μια στοίβα βιβλία με κάθε βιβλίο να είναι το ένα πάνω στο άλλο.

Η έννοια του last in first out στην περίπτωση των βιβλίων σημαίνει ότι μόνο το κορυφαίο βιβλίο μπορεί να αφαιρεθεί από τη στοίβα των βιβλίων. Δεν είναι δυνατό να αφαιρέσετε ένα βιβλίο από το ενδιάμεσο, γιατί τότε αυτό θα διαταράξει τη ρύθμιση της στοίβας.

Ως εκ τούτου σε C#, η στοίβα λειτουργεί επίσης με τον ίδιο τρόπο. Στοιχεία προστίθενται στη στοίβα, το ένα πάνω στο άλλο. Η διαδικασία προσθήκης ενός στοιχείου στη στοίβα ονομάζεται λειτουργία ώθησης. Για να αφαιρέσετε ένα στοιχείο από μια στοίβα, μπορείτε επίσης να αφαιρέσετε το επάνω μεγαλύτερο στοιχείο της στοίβας. Αυτή η λειτουργία είναι γνωστή ως pop.

Ας δούμε τις λειτουργίες που είναι διαθέσιμες για τη συλλογή Stack με περισσότερες λεπτομέρειες.

Δήλωση της στοίβας

Δημιουργείται μια στοίβα με τη βοήθεια του τύπου Stack Data. Η λέξη-κλειδί "νέο" χρησιμοποιείται για τη δημιουργία ενός αντικειμένου μιας Στοίβας. Στη συνέχεια, το αντικείμενο εκχωρείται στη μεταβλητή st.

Stack st = new Stack()

Προσθήκη στοιχείων στη στοίβα

Η μέθοδος ώθησης χρησιμοποιείται για την προσθήκη ενός στοιχείου στη στοίβα. Η γενική σύνταξη της δήλωσης δίνεται παρακάτω.

Stack.push(element)

Αφαίρεση στοιχείων από τη στοίβα

Η μέθοδος pop χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη στοίβα. Η λειτουργία pop θα επιστρέψει το ανώτατο στοιχείο της στοίβας. Η γενική σύνταξη της δήλωσης δίνεται παρακάτω

 Stack.pop()

Κόμης

Αυτή η ιδιότητα χρησιμοποιείται για τη λήψη του αριθμού των στοιχείων στη Στοίβα. Παρακάτω είναι η γενική σύνταξη αυτής της δήλωσης.

Stack.Count

Περιέχει

Αυτή η μέθοδος χρησιμοποιείται για να δούμε εάν ένα στοιχείο υπάρχει στη Στοίβα. Παρακάτω είναι η γενική σύνταξη αυτής της δήλωσης. Η δήλωση θα επιστρέψει true εάν το στοιχείο υπάρχει, διαφορετικά θα επιστρέψει την τιμή false.

Stack.Contains(element)

Τώρα ας δούμε ότι αυτό λειτουργεί σε επίπεδο κώδικα. Όλος ο παρακάτω κώδικας θα γραφτεί στο δικό μας Εφαρμογή κονσόλας. Ο κώδικας θα γραφτεί στο αρχείο μας Program.cs.

Στο παρακάτω πρόγραμμα, θα γράψουμε τον κώδικα για να δούμε πώς μπορούμε να χρησιμοποιήσουμε τις προαναφερθείσες μεθόδους.

Παράδειγμα 1: Μέθοδος Stack.Push().

Σε αυτό το παράδειγμα, θα δούμε

  • Πώς δημιουργείται μια στοίβα.
  • Πώς να εμφανίσετε τα στοιχεία της στοίβας και να χρησιμοποιήσετε τις μεθόδους Count και Contain.

Στοίβα σε C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.WriteLine(); Console.WriteLine();
    Console.WriteLine("The number of elements in the stack " +st.Count);
    Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));
    Console.ReadKey();
  }
 }
}

Επεξήγηση κώδικα: -

  1. Το πρώτο βήμα χρησιμοποιείται για τη δήλωση της Στοίβας. Εδώ δηλώνουμε το "st" ως μεταβλητή για να κρατάμε τα στοιχεία της στοίβας μας.
  2. Στη συνέχεια, προσθέτουμε 3 στοιχεία στη στοίβα μας. Κάθε στοιχείο προστίθεται μέσω της μεθόδου Push.
  3. Τώρα, δεδομένου ότι τα στοιχεία στοίβας δεν είναι προσβάσιμα μέσω της θέσης ευρετηρίου όπως το λίστα πίνακα, πρέπει να χρησιμοποιήσουμε διαφορετική προσέγγιση για να εμφανίσουμε τα στοιχεία της στοίβας. Το αντικείμενο (obj) είναι μια προσωρινή μεταβλητή, η οποία δηλώνεται για τη διατήρηση κάθε στοιχείου της στοίβας. Στη συνέχεια χρησιμοποιούμε την εντολή foreach για να περάσουμε από κάθε στοιχείο της στοίβας. Για κάθε στοιχείο στοίβας, η τιμή εκχωρείται στη μεταβλητή obj. Στη συνέχεια χρησιμοποιούμε την εντολή Console.Writeline για να εμφανίσουμε την τιμή στην κονσόλα.
  4. Χρησιμοποιούμε την ιδιότητα Count (st.count) για να λάβετε τον αριθμό των στοιχείων στη στοίβα. Αυτή η ιδιοκτησία θα επιστρέψει έναν αριθμό. Στη συνέχεια, εμφανίζουμε αυτήν την τιμή στην κονσόλα.
  5. Στη συνέχεια χρησιμοποιούμε τη μέθοδο Contains για να δούμε αν η τιμή του 3 υπάρχει στη στοίβα μας. Αυτό θα επιστρέψει είτε αληθή είτε ψευδή τιμή. Στη συνέχεια, εμφανίζουμε αυτήν την τιμή επιστροφής στην κονσόλα.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Στοίβα σε C#

Από την έξοδο, μπορούμε να δούμε ότι εμφανίζονται τα στοιχεία της στοίβας. Επίσης, η τιμή του True εμφανίζεται για να πει ότι η τιμή του 3 ορίζεται στη στοίβα.

Σημείωση: Έχετε παρατηρήσει ότι το τελευταίο στοιχείο που ωθήθηκε στη στοίβα εμφανίζεται πρώτο. Αυτό είναι το κορυφαίο στοιχείο της στοίβας. Ο αριθμός των στοιχείων στοίβας εμφανίζεται επίσης στην έξοδο.

Παράδειγμα 2: Μέθοδος Stack.Pop().

Τώρα ας δούμε τη λειτουργία "αφαίρεση". Θα δούμε τον κωδικό που απαιτείται για την αφαίρεση του ανώτατου στοιχείου από τη στοίβα.

Στοίβα σε C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);
   
   st.Pop();

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.ReadKey();
  }
 }
}

Επεξήγηση κώδικα: -

  1. Εδώ εκδίδουμε απλώς τη μέθοδο pop που χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη στοίβα.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Στοίβα σε C#

Μπορούμε να δούμε ότι το στοιχείο 3 αφαιρέθηκε από τη στοίβα.

Σύνοψη

  • Μια Στοίβα βασίζεται στην έννοια του τελευταίου εισόδου πρώτου εξόδου. Η λειτουργία της προσθήκης ενός στοιχείου στη στοίβα ονομάζεται λειτουργία ώθησης. Η λειτουργία αφαίρεσης ενός στοιχείου στη στοίβα ονομάζεται λειτουργία pop.