Pila de C# con ejemplos Push & Pop
¿Qué es la pila en C#?
La pila es una colección de casos especiales que representa un concepto de último en entrar, primero en salir (LIFO). Para entender primero LIFO, tomemos un ejemplo. Imagine una pila de libros con cada libro uno encima del otro.
El concepto de último en entrar, primero en salir en el caso de los libros significa que sólo el libro que está más arriba se puede quitar de la pila de libros. No es posible quitar un libro de entre medio, porque eso perturbaría la colocación de la pila.
Por lo tanto en C#, la pila también funciona de la misma manera. Los elementos se agregan a la pila, uno encima del otro. El proceso de agregar un elemento a la pila se llama operación de inserción. Para eliminar un elemento de una pila, también puede eliminar el elemento superior de la pila. Esta operación se conoce como pop.
Veamos con más detalle las operaciones disponibles para la colección Stack.
Declaración de la pila
Se crea una pila con la ayuda del tipo Stack Data. La palabra clave "nuevo" se utiliza para crear un objeto de una pila. Luego, el objeto se asigna a la variable st.
Stack st = new Stack()
Agregar elementos a la pila
El método push se utiliza para agregar un elemento a la pila. La sintaxis general de la declaración se proporciona a continuación.
Stack.push(element)
Quitar elementos de la pila
El método pop se utiliza para eliminar un elemento de la pila. La operación pop devolverá el elemento superior de la pila. La sintaxis general de la declaración se proporciona a continuación.
Stack.pop()
Contar
Esta propiedad se utiliza para obtener la cantidad de elementos en la pila. A continuación se muestra la sintaxis general de esta declaración.
Stack.Count
contiene
Este método se utiliza para ver si un elemento está presente en la pila. A continuación se muestra la sintaxis general de esta declaración. La declaración devolverá verdadero si el elemento existe; de lo contrario, devolverá el valor falso.
Stack.Contains(element)
Ahora veamos cómo funciona esto a nivel de código. Todo el código mencionado a continuación se escribirá en nuestro Aplicación de consola. El código se escribirá en nuestro archivo Program.cs.
En el siguiente programa, escribiremos el código para ver cómo podemos utilizar los métodos mencionados anteriormente.
Ejemplo 1: Método Stack.Push()
En este ejemplo veremos
- Cómo se crea una pila.
- Cómo mostrar los elementos de la pila y utilizar los métodos Count y 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(); } } }
Explicación del código: -
- El primer paso se utiliza para declarar la pila. Aquí declaramos "st" como una variable para contener los elementos de nuestra pila.
- A continuación, agregamos 3 elementos a nuestra pila. Cada elemento se agrega mediante el método Push.
- Ahora bien, dado que no se puede acceder a los elementos de la pila a través de la posición del índice como el lista de arreglo, necesitamos utilizar un enfoque diferente para mostrar los elementos de la pila. El Objeto (obj) es una variable temporal, que se declara para contener cada elemento de la pila. Luego usamos la declaración foreach para revisar cada elemento de la pila. Para cada elemento de la pila, el valor se asigna a la variable obj. Luego usamos el comando Console.Writeline para mostrar el valor en la consola.
- Estamos usando la propiedad Count (st.count) para obtener la cantidad de elementos en la pila. Esta propiedad devolverá un número. Luego mostramos este valor en la consola.
- Luego usamos el método Contiene para ver si el valor de 3 está presente en nuestra pila. Esto devolverá un valor verdadero o falso. Luego mostramos este valor de retorno en la consola.
Si el código anterior se ingresa correctamente y se ejecuta el programa, se mostrará el siguiente resultado.
Salida:
En el resultado, podemos ver que se muestran los elementos de la pila. Además, se muestra el valor de Verdadero para indicar que el valor de 3 está definido en la pila.
Nota:Has notado que el último elemento insertado en la pila se muestra primero. Este es el elemento superior de la pila. La cantidad de elementos de la pila también se muestra en la salida.
Ejemplo 2: Método Stack.Pop()
Ahora veamos la funcionalidad "eliminar". Veremos el código necesario para eliminar el elemento superior de la pila.
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(); } } }
Explicación del código: -
- Aquí simplemente emitimos el método pop que se utiliza para eliminar un elemento de la pila.
Si el código anterior se ingresa correctamente y se ejecuta el programa, se mostrará el siguiente resultado.
Salida:
Podemos ver que el elemento 3 fue eliminado de la pila.
Resum
- Una pila se basa en el concepto de "último en entrar, primero en salir". La operación de añadir un elemento a la pila se denomina operación de inserción. La operación de eliminar un elemento de la pila se denomina operación de extracción.