CSharp

Tutorial CSharp: Conjuntos, colas y pilas

CSharp conjuntos colas pilas: manejo. Aprende a manejar conjuntos colas y pilas en CSharp con ejemplos prácticos y detallados.

Aprende CSharp y certifícate

Existen varias estructuras de datos que resultan son muy útiles para una variedad de algoritmos y situaciones en la programación, y vale la pena entender cómo se comportan y cuándo se deben usar. Aquí se mencionarán algunos de los más utilizados.

Todas las estructuras de datos a continuación se encuentra en el espacio de nombres System.Collections.Generic, y requerirán de una directiva using para poder ser utilizadas.

using System.Collections.Generic;

Conjuntos (Sets)

Un conjunto o set es una colección de elementos que no contiene duplicados. El equivalente más cercano en la biblioteca de clases de .NET es HashSet<T>.

Crear un conjunto

Para crear un conjunto, puede instanciarse un objeto HashSet<T>, donde T es el tipo de elementos que el conjunto va a contener. Por ejemplo, un conjunto de enteros se puede crear de la siguiente manera:

HashSet<int> conjunto = new HashSet<int>();

Añadir elementos a un conjunto

Para añadir elementos a un conjunto, puede usarse el método Add. Por ejemplo:

conjunto.Add(1);
conjunto.Add(2);
conjunto.Add(3);

Si se intenta añadir un elemento que ya existe en el conjunto, el método Add no hará nada y devolverá false. Esto no lanzará un error.

Eliminar elementos de un conjunto

Para eliminar elementos de un conjunto, puede usarse el método Remove. Por ejemplo:

conjunto.Remove(1);

Este método devolverá true si el elemento es eliminado correctamente. Si el conjunto no contiene el elemento a eliminar entonces devolverá false, pero no lanzará ninguna excepción.

Verificar si un elemento está en el conjunto

Para verificar si un elemento está en el conjunto, puede usarse el método Contains, que devolverá true o false en función de si el elemento aparece en el conjunto o no. Por ejemplo:

bool contiene = conjunto.Contains(2);  // devuelve true

Colas (Queues)

Una cola o queue es una colección de elementos que sigue el principio de FIFO (First In, First Out), es decir, el primer elemento que se añade a la cola será el primer elemento en ser eliminado.

Crear una cola

Para crear una cola, puede instanciarse un objeto Queue<T>. Por ejemplo, una cola de cadenas se puede crear de la siguiente manera:

Queue<string> cola = new Queue<string>();

Añadir elementos a una cola

Para añadir elementos a una cola, puede usarse el método Enqueue. Por ejemplo:

cola.Enqueue("primer elemento");
cola.Enqueue("segundo elemento");
cola.Enqueue("tercer elemento");

Eliminar elementos de una cola

Para eliminar el primer elemento de una cola, puede usarse el método Dequeue. Este método devolverá el elemento eliminado. Por ejemplo:

string primerElemento = cola.Dequeue();  // devuelve "primer elemento"

Con Dequeue, los elementos son eliminados en el orden en el que fueron añadidos, siguiendo el principio FIFO.

Pilas (Stacks)

Una pila o stack es una colección de elementos que sigue el principio de LIFO (Last In, First Out), es decir, el último elemento que se añade a la pila será el primer elemento en ser eliminado.

Crear una pila

Para crear una pila, puede instanciarse un objeto Stack<T>. Por ejemplo, una pila de enteros se puede crear de la siguiente manera:

Stack<int> pila = new Stack<int>();

Añadir elementos a una pila

Para añadir elementos a una pila, puede usarse el método Push. Por ejemplo:

pila.Push(1);
pila.Push(2);
pila.Push(3);

Eliminar elementos de una pila

Para eliminar el último elemento añadido a una pila, puede usarse el método Pop. Este método devolverá el elemento eliminado. Por ejemplo:

int ultimoElemento = pila.Pop();  // devuelve 3

Con Pop, los elementos son eliminados en el orden inverso al orden en el que fueron añadidos, siguiendo el principio LIFO.

Aprende CSharp online

Otros ejercicios de programación de CSharp

Evalúa tus conocimientos de esta lección Conjuntos, colas y pilas con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de CSharp

Accede a todas las lecciones de CSharp y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A C#

Introducción Y Entorno

Creación De Proyecto C#

Introducción Y Entorno

Variables Y Constantes

Sintaxis

Tipos De Datos

Sintaxis

Operadores

Sintaxis

Control De Flujo

Sintaxis

Funciones

Sintaxis

Estructuras De Control Iterativo

Sintaxis

Interpolación De Strings

Sintaxis

Estructuras De Control Condicional

Sintaxis

Manejo De Valores Nulos

Sintaxis

Clases Y Encapsulación

Programación Orientada A Objetos

Objetos

Programación Orientada A Objetos

Constructores Y Destructores

Programación Orientada A Objetos

Herencia

Programación Orientada A Objetos

Polimorfismo

Programación Orientada A Objetos

Genéricos

Programación Orientada A Objetos

Métodos Virtuales Y Sobrecarga

Programación Orientada A Objetos

Clases Abstractas

Programación Orientada A Objetos

Interfaces

Programación Orientada A Objetos

Propiedades Y Encapsulación

Programación Orientada A Objetos

Métodos De Extensión

Programación Orientada A Objetos

Clases Y Objetos

Programación Orientada A Objetos

Clases Parciales

Programación Orientada A Objetos

Miembros Estáticos

Programación Orientada A Objetos

Tuplas Y Tipos Anónimos

Programación Orientada A Objetos

Arrays Y Listas

Colecciones Y Linq

Diccionarios

Colecciones Y Linq

Conjuntos, Colas Y Pilas

Colecciones Y Linq

Uso De Consultas Linq

Colecciones Y Linq

Linq Avanzado

Colecciones Y Linq

Colas Y Pilas

Colecciones Y Linq

Conjuntos

Colecciones Y Linq

Linq Básico

Colecciones Y Linq

Delegados Funcionales

Programación Funcional

Records

Programación Funcional

Expresiones Lambda

Programación Funcional

Linq Funcional

Programación Funcional

Fundamentos De La Programación Funcional

Programación Funcional

Pattern Matching

Programación Funcional

Testing Unitario Con Xunit

Testing

Excepciones

Excepciones

Delegados

Programación Asíncrona

Eventos

Programación Asíncrona

Lambdas

Programación Asíncrona

Uso De Async Y Await

Programación Asíncrona

Tareas

Programación Asíncrona

Accede GRATIS a CSharp y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender las estructuras de datos: conjuntos, colas y pilas.
  2. Aprender a crear, añadir y eliminar elementos de conjuntos, colas y pilas.
  3. Conocer el uso de los métodos Add y Remove para conjuntos, Enqueue y Dequeue para colas, y Push y Pop para pilas.