Stack C # con esempio

Sommario:

Anonim

Cos'è lo Stack in C #?

Lo stack è una collezione di casi speciali che rappresenta un concetto LIFO (last in first out). Per capire prima LIFO, facciamo un esempio. Immagina una pila di libri con ogni libro tenuto uno sopra l'altro.

Il concetto di ultimo entrato primo uscito 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 mezzo, perché in tal caso si 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 "nuovo" viene utilizzata per creare un oggetto di uno Stack. L'oggetto viene quindi assegnato alla variabile st.

Stack st = new Stack()

Aggiunta di elementi alla pila

Il metodo push viene utilizzato per aggiungere un elemento allo stack. Di seguito viene fornita la sintassi generale dell'istruzione.

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. Di seguito viene fornita la sintassi generale dell'istruzione

 Stack.pop()

Contare

Questa proprietà viene utilizzata per ottenere il numero di elementi nello Stack. Di seguito è riportata la sintassi generale di questa affermazione.

Stack.Count

Contiene

Questo metodo viene utilizzato per vedere se un elemento è presente nello Stack. Di seguito è riportata la sintassi generale di questa affermazione. L'istruzione restituirà true se l'elemento esiste, altrimenti restituirà il valore false.

Stack.Contains(element)

Ora vediamo come funziona a livello di codice. Tutto il codice indicato di seguito verrà scritto nella nostra applicazione Console. Il codice verrà scritto nel nostro file Program.cs.

Nel programma sottostante, scriveremo il codice per vedere come possiamo utilizzare i metodi sopra menzionati.

Esempio 1

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: -

  1. Il primo passaggio viene utilizzato per dichiarare lo Stack. Qui stiamo dichiarando "st" come una variabile per contenere gli elementi del nostro stack.
  2. Successivamente, aggiungiamo 3 elementi al nostro stack. Ogni elemento viene aggiunto tramite il metodo Push.
  3. Poiché non è possibile accedere agli elementi dello stack tramite la posizione dell'indice come l'elenco degli array, è necessario utilizzare un approccio diverso per visualizzare gli elementi dello stack. Object (obj) è una variabile temporanea, che viene dichiarata per contenere ogni elemento dello stack. Quindi usiamo l'istruzione foreach per esaminare ogni elemento dello stack. Per ogni elemento dello stack, il valore viene assegnato alla variabile obj. Quindi utilizziamo il comando Console.Writeline per visualizzare il valore nella console.
  4. Stiamo usando la proprietà Count ( st.count ) per ottenere il numero di elementi nello stack. Questa proprietà restituirà un numero. Quindi visualizziamo questo valore sulla console.
  5. Quindi utilizziamo il metodo Contains per vedere se il valore 3 è presente nel nostro stack. Questo restituirà un valore vero o falso. Quindi visualizziamo questo valore restituito alla console.

Se il codice sopra è 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.

Nota : hai notato che l'ultimo elemento inserito nella pila viene visualizzato per primo. Questo è l'elemento più in alto dello stack. Nell'output viene visualizzato anche il conteggio degli elementi dello stack.

Esempio 2

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: -

  1. Qui emettiamo solo il metodo pop che viene utilizzato per rimuovere un elemento dallo stack.

Se il codice di cui sopra viene inserito correttamente e il programma viene eseguito, verrà visualizzato il seguente output.

Produzione:

Possiamo vedere che l'elemento 3 è stato rimosso dallo stack.

Sommario

  • Uno Stack si basa sul concetto dell'ultimo arrivato primo uscito. L'operazione di aggiunta di un elemento allo stack è chiamata operazione push. L'operazione di rimozione di un elemento dallo stack è chiamata operazione pop.