C# | Clase de pila

Stack representa unacolección de objetos de último en entrar, primero en salir . Se utiliza cuando necesita un acceso de último en entrar, primero en salir a los elementos. Cuando agrega un elemento en la lista, se le llama empujar el elemento y cuando lo elimina, se le llama sacar el elemento. Esta clase se incluye en el espacio de nombres System.Collections .

Características de la clase de pila:

  • La capacidad de una Pila es el número de elementos que la Pila puede contener. A medida que se agregan elementos a una pila, la capacidad aumenta automáticamente según sea necesario mediante la reasignación.
  • Si Count es menor que la capacidad de la pila, Push es una operación O(1) . Si es necesario aumentar la capacidad para acomodar el nuevo elemento, Push se convierte en una operación O(n) , donde n es Count. Pop es una operación O(1) .
  • Stack acepta nulo como un valor válido y permite elementos duplicados.

Constructores

Constructor Descripción
Pila() Inicializa una nueva instancia de la clase Stack que está vacía y tiene la capacidad inicial predeterminada.
Pila (colección I) Inicializa una nueva instancia de la clase Stack que contiene elementos copiados de la colección especificada y tiene la misma capacidad inicial que el número de elementos copiados.
Pila (Int32) Inicializa una nueva instancia de la clase Stack que está vacía y tiene la capacidad inicial especificada o la capacidad inicial predeterminada, la que sea mayor.

Ejemplo:

// C# code to create a Stack
using System;
using System.Collections;
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("1st Element");
        myStack.Push("2nd Element");
        myStack.Push("3rd Element");
        myStack.Push("4th Element");
        myStack.Push("5th Element");
        myStack.Push("6th Element");
  
        // Displaying the count of elements
        // contained in the Stack
        Console.Write("Total number of elements in the Stack are : ");
  
        Console.WriteLine(myStack.Count);
  
        // Displaying the top element of Stack
        // without removing it from the Stack
        Console.WriteLine("Element at the top is : " + myStack.Peek());
  
        // Displaying the top element of Stack
        // without removing it from the Stack
        Console.WriteLine("Element at the top is : " + myStack.Peek());
  
        // Displaying the count of elements
        // contained in the Stack
        Console.Write("Total number of elements in the Stack are : ");
  
        Console.WriteLine(myStack.Count);
    }
}

Producción:

Total number of elements in the Stack are : 6
Element at the top is : 6th Element
Element at the top is : 6th Element
Total number of elements in the Stack are : 6

Propiedades

Propiedad Descripción
Contar Obtiene el número de elementos contenidos en la pila.
Está sincronizado Obtiene un valor que indica si el acceso a la pila está sincronizado (seguro para subprocesos).
SyncRoot Obtiene un objeto que se puede usar para sincronizar el acceso a la pila.

Ejemplo:

// C# code to Get the number of
// elements contained in the Stack
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("Chandigarh");
        myStack.Push("Delhi");
        myStack.Push("Noida");
        myStack.Push("Himachal");
        myStack.Push("Punjab");
        myStack.Push("Jammu");
  
        // Displaying the count of elements
        // contained in the Stack
        Console.Write("Total number of elements in the Stack are : ");
  
        Console.WriteLine(myStack.Count);
    }
}

Producción:

Total number of elements in the Stack are : 6

Métodos

Método Descripción
Claro() Elimina todos los objetos de la pila.
Clon() Crea una copia superficial de la pila.
Contiene (Objeto) Determina si un elemento está en la pila.
Copiar a (array, Int32) Copia la pila en una array unidimensional existente, comenzando en el índice de array especificado.
Es igual a (Objeto) Determina si el objeto especificado es igual al objeto actual.
ObtenerEnumerador() Devuelve un IEnumerator para la pila.
Obtener código hash() Sirve como la función hash predeterminada.
ObtenerTipo() Obtiene el Tipo de la instancia actual.
MemberwiseClone() Crea una copia superficial del objeto actual.
Ojeada() Devuelve el objeto en la parte superior de la pila sin eliminarlo.
Estallido() Elimina y devuelve el objeto en la parte superior de la pila.
Empujar (Objeto) Inserta un objeto en la parte superior de la Pila.
sincronizado (pila) Devuelve un contenedor sincronizado (seguro para subprocesos) para la pila.
AArray() Copia la pila en una nueva array.
Enstringr() Devuelve una string que representa el objeto actual.

Ejemplo :

// C# code to Remove all
// objects from the Stack
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack 
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("1st Element");
        myStack.Push("2nd Element");
        myStack.Push("3rd Element");
        myStack.Push("4th Element");
        myStack.Push("5th Element");
        myStack.Push("6th Element");
  
        // Displaying the count of elements
        // contained in the Stack before
        // removing all the elements
        Console.Write("Total number of elements in the Stack are : ");
  
        Console.WriteLine(myStack.Count);
  
        // Removing all elements from Stack
        myStack.Clear();
  
        // Displaying the count of elements
        // contained in the Stack after
        // removing all the elements
        Console.Write("Total number of elements in the Stack are : ");
  
        Console.WriteLine(myStack.Count);
    }
}
Producción:

Total number of elements in the Stack are : 6
Total number of elements in the Stack are : 0

Ejemplo :

// C# code to Check if a Stack
// contains an element
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack of strings
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("Geeks");
        myStack.Push("Geeks Classes");
        myStack.Push("Noida");
        myStack.Push("Data Structures");
        myStack.Push("GeeksforGeeks");
  
        // Checking whether the element is
        // present in the Stack or not
        // The function returns True if the
        // element is present in the Stack, else
        // returns False
        Console.WriteLine(myStack.Contains("GeeksforGeeks"));
    }
}
Producción:

True

Referencia:

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *