Stack C# con esempi Push & Pop
Cos'รจ lo Stack in C#?
Lo stack รจ una raccolta di casi speciali che rappresenta il concetto LIFO (last in first out). Per comprendere innanzitutto il LIFO, facciamo un esempio. Immagina una pila di libri con ogni libro tenuto uno sopra l'altro.
Il concetto di last in first out nel caso dei libri significa che solo il libro piรน in alto puรฒ essere rimosso dalla pila di libri. Non รจ possibile rimuovere un libro dal centro perchรฉ ciรฒ disturberebbe l'impostazione della pila.
Quindi in C#, anche lo stack funziona allo stesso modo. Gli elementi vengono aggiunti alla pila, uno sopra l'altro. Il processo di aggiunta di un elemento allo stack รจ chiamato operazione push. Per rimuovere un elemento da una pila, puoi anche rimuovere l'elemento piรน in alto della pila. Questa operazione รจ nota come pop.
Diamo un'occhiata piรน in dettaglio alle operazioni disponibili per la raccolta Stack.
Dichiarazione dello stack
Uno stack viene creato con l'aiuto del tipo Stack Data. La parola chiave โnewโ viene utilizzata per creare un oggetto di uno Stack. L'oggetto viene quindi assegnato alla variabile st.
Stack st = new Stack()
Aggiunta di elementi allo stack
Il metodo push viene utilizzato per aggiungere un elemento allo stack. La sintassi generale dell'enunciato รจ riportata di seguito.
Stack.push(element)
Rimozione di elementi dalla pila
Il metodo pop viene utilizzato per rimuovere un elemento dallo stack. L'operazione pop restituirร l'elemento piรน in alto dello stack. La sintassi generale dell'enunciato รจ riportata di seguito
Stack.pop()
Contare
Questa proprietร viene utilizzata per ottenere il numero di elementi nello Stack. Di seguito รจ riportata la sintassi generale di questa istruzione.
Stack.Count
contiene
Questo metodo viene utilizzato per vedere se un elemento รจ presente nello Stack. Di seguito รจ riportata la sintassi generale di questa istruzione. L'istruzione restituirร true se l'elemento esiste, altrimenti restituirร il valore false.
Stack.Contains(element)
Ora vediamolo funzionare a livello di codice. Tutto il codice sotto indicato verrร scritto al ns Applicazione console. Il codice verrร scritto nel nostro file Program.cs.
Nel programma seguente, scriveremo il codice per vedere come possiamo utilizzare i metodi sopra menzionati.
Esempio 1: metodo Stack.Push()
In questo esempio vedremo
- Come viene creato uno stack.
- Come visualizzare gli elementi dello stack e utilizzare i metodi Count e 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();
}
}
}
Spiegazione del codice: -
- Il primo passo viene utilizzato per dichiarare lo Stack. Qui stiamo dichiarando "st" come variabile per contenere gli elementi del nostro stack.
- Successivamente, aggiungiamo 3 elementi al nostro stack. Ogni elemento viene aggiunto tramite il metodo Push.
- Ora, poichรฉ non รจ possibile accedere agli elementi dello stack tramite la posizione dell'indice come il lista di array, dobbiamo utilizzare un approccio diverso per visualizzare gli elementi dello stack. L'Oggetto (obj) รจ una variabile temporanea, dichiarata per contenere ogni elemento dello stack. Utilizziamo quindi l'istruzione foreach per esaminare ogni elemento dello stack. Per ogni elemento dello stack, il valore viene assegnato alla variabile obj. Utilizziamo quindi il comando Console.Writeline per visualizzare il valore sulla console.
- Stiamo utilizzando la proprietร Count (st.count) per ottenere il numero di elementi nello stack. Questa proprietร restituirร un numero. Quindi visualizziamo questo valore sulla console.
- Utilizziamo quindi il metodo Contiene per vedere se il valore 3 รจ presente nel nostro stack. Ciรฒ restituirร un valore vero o falso. Quindi visualizziamo questo valore restituito sulla console.
Se il codice sopra riportato viene inserito correttamente e il programma viene eseguito, verrร visualizzato il seguente output.
Produzione:
Dall'output, possiamo vedere che vengono visualizzati gli elementi dello stack. Inoltre, viene visualizzato il valore True per indicare che il valore 3 รจ definito nello stack.
Note:: Hai notato che l'ultimo elemento messo nello stack viene visualizzato per primo. Questo รจ l'elemento piรน in alto dello stack. Nell'output viene mostrato anche il conteggio degli elementi dello stack.
Esempio 2: metodo Stack.Pop()
Ora diamo un'occhiata alla funzionalitร "rimuovi". Vedremo il codice richiesto per rimuovere l'elemento piรน in alto dallo stack.
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();
}
}
}
Spiegazione del codice: -
- Qui utilizziamo semplicemente il metodo pop che viene utilizzato per rimuovere un elemento dallo stack.
Se il codice sopra riportato viene immesso correttamente e il programma viene eseguito, verrร visualizzato il seguente output.
Produzione:
Possiamo vedere che l'elemento 3 รจ stato rimosso dallo stack.
Sintesi
- Uno Stack si basa sul concetto last in first out. L'operazione di aggiunta di un elemento allo stack รจ chiamata operazione push. L'operazione di rimozione di un elemento dallo stack รจ chiamata operazione pop.




