C # Στοίβα με Παράδειγμα

Πίνακας περιεχομένων:

Anonim

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

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

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

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

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

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

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

Stack st = new Stack()

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

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

Stack.push(element)

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

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

 Stack.pop()

μετρώ

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

Stack.Count

Περιέχει

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

Stack.Contains(element)

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

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

Παράδειγμα 1

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

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

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

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

Παραγωγή:

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

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

Παράδειγμα 2

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

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 που χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη στοίβα.

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

Παραγωγή:

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

Περίληψη

  • Το Stack βασίζεται στο τελευταίο concept του πρώτου out. Η λειτουργία της προσθήκης ενός στοιχείου στη στοίβα ονομάζεται λειτουργία ώθησης. Η λειτουργία της αφαίρεσης ενός στοιχείου στη στοίβα ονομάζεται λειτουργία pop.