Implementar Una Pila Usando Una Matriz - Ejercicio De Programacion C# Sharp

En este ejercicio, deberás implementar una pila (stack) en C#. Una pila es una estructura de datos que sigue el principio LIFO (Last In, First Out), es decir, el último elemento en entrar es el primero en salir. En este ejercicio, tendrás que crear una clase para la pila, que permita insertar elementos en la parte superior de la pila y eliminar elementos desde la parte superior. El objetivo de este ejercicio es ayudarte a comprender cómo funcionan las pilas y cómo gestionarlas en C#.

En este ejercicio, deberás implementar métodos clave como Push (para agregar elementos), Pop (para eliminar elementos) y Peek (para ver el elemento en la parte superior sin eliminarlo). Además, deberás manejar casos como cuando la pila esté vacía o llena, y cómo gestionar estos eventos para evitar errores.

Al finalizar este ejercicio, habrás aprendido a utilizar pilas en C# y cómo aplicarlas en situaciones donde el acceso a los datos siga un orden de "último en entrar, primero en salir", como en el procesamiento de operaciones en reversa o el seguimiento de estados en aplicaciones.

 Categoría

Gestión Dinámica de Memoria

 Ejercicio

Implementar Una Pila Usando Una Matriz

 Objectivo

Implementar una pila

 Ejemplo Ejercicio C#

 Copiar Código C#
// Importing necessary namespace for basic functionalities
using System; // For basic functionalities like Console

// Class that implements a Stack using an array
class Stack
{
    private int[] stackArray; // Array to hold the stack elements
    private int top;          // Index for the top of the stack
    private int capacity;     // Maximum capacity of the stack

    // Constructor to initialize the stack with a given capacity
    public Stack(int capacity)
    {
        this.capacity = capacity;         // Set the stack's maximum capacity
        stackArray = new int[capacity];   // Initialize the array to hold the stack elements
        top = -1;                         // The stack is initially empty, so top is -1
    }

    // Method to add an element to the stack (Push operation)
    public void Push(int element)
    {
        if (top == capacity - 1) // Check if the stack is full
        {
            Console.WriteLine("Stack is full! Cannot push.");
            return;
        }
        stackArray[++top] = element; // Increment top and add the element to the stack
        Console.WriteLine($"Pushed: {element}");
    }

    // Method to remove the top element from the stack (Pop operation)
    public void Pop()
    {
        if (top == -1) // Check if the stack is empty
        {
            Console.WriteLine("Stack is empty! Cannot pop.");
            return;
        }
        int poppedElement = stackArray[top--]; // Get the top element and decrement top
        Console.WriteLine($"Popped: {poppedElement}");
    }

    // Method to display all elements in the stack
    public void DisplayStack()
    {
        if (top == -1) // Check if the stack is empty
        {
            Console.WriteLine("Stack is empty.");
            return;
        }

        Console.WriteLine("Stack contents:");
        for (int i = top; i >= 0; i--) // Display elements from top to bottom
        {
            Console.WriteLine(stackArray[i]);
        }
    }
}

// Main program to demonstrate the Stack functionality
class Program
{
    static void Main(string[] args)
    {
        // Create a stack with a capacity of 5
        Stack stack = new Stack(5);

        // Menu to allow user to interact with the stack
        while (true)
        {
            Console.WriteLine("\nMenu:");
            Console.WriteLine("1. Push an element");
            Console.WriteLine("2. Pop an element");
            Console.WriteLine("3. Display the stack");
            Console.WriteLine("4. Exit");
            Console.Write("Enter your choice: ");
            string choice = Console.ReadLine();

            if (choice == "1")
            {
                // Prompt user to enter an element to push onto the stack
                Console.Write("Enter an element to push: ");
                int element = int.Parse(Console.ReadLine());
                stack.Push(element); // Push the element onto the stack
            }
            else if (choice == "2")
            {
                // Pop an element from the stack
                stack.Pop(); // Pop the top element from the stack
            }
            else if (choice == "3")
            {
                // Display the current stack
                stack.DisplayStack(); // Show the current elements in the stack
            }
            else if (choice == "4")
            {
                // Exit the program
                break;
            }
            else
            {
                // Invalid choice
                Console.WriteLine("Invalid choice. Please try again.");
            }
        }
    }
}

 Salida

Menu:
1. Push an element
2. Pop an element
3. Display the stack
4. Exit
Enter your choice: 1
Enter an element to push: 1
Pushed: 1

Menu:
1. Push an element
2. Pop an element
3. Display the stack
4. Exit
Enter your choice: 3
Stack contents:
1

Menu:
1. Push an element
2. Pop an element
3. Display the stack
4. Exit
Enter your choice: 2
Popped: 1

Menu:
1. Push an element
2. Pop an element
3. Display the stack
4. Exit
Enter your choice: 4

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Gestión Dinámica de Memoria

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Colecciones de colas

    En este ejercicio, deberás crear una cola de cadenas utilizando la clase Queue que ya existe en la plataforma DotNet. La clase Queue es una implementación de l...

  •  Notación Polish inversa de pila de cola

    En este ejercicio, deberás crear un programa que lea una expresión en Notación Polaca Inversa (RPN, por sus siglas en inglés) desde un archivo de texto, como por ejemplo:

  •  ArrayList

    En este ejercicio, deberás crear una lista de cadenas utilizando la clase ArrayList que ya existe en la plataforma .NET. La clase ArrayList permite almacenar e...

  •  ArrayList duplicar un archivo de texto

    En este ejercicio, deberás crear un programa que lea el contenido de un archivo de texto y lo almacene en otro archivo de texto, pero invirtiendo el orden de las líneas. Est...

  •  Suma ilimitada

    En este ejercicio, deberás crear un programa que permita al usuario ingresar una cantidad ilimitada de números. Además de ingresar números, el programa debe permitir al usua...

  •  ArrayList - Lector de archivos de texto

    En este ejercicio, se debe crear un lector básico de archivos de texto que muestre 21 líneas de texto y permita al usuario navegar usando las teclas de flecha hacia arriba y...