Implementar una pila usando una matriz Ejercicio C# - Curso de Programación C# (C Sharp)

 Ejercicio

Implementar una pila usando una matriz

 Objetivo

Implementar una pila

 Código de Ejemplo

// 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.");
            }
        }
    }
}

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

 Implementación de una cola usando una matriz
Implementación de una cola...
 Colecciones de colas
Cree una cola de cadenas, utilizando la clase Queue que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacenados ...
 Notación Polish inversa de pila de cola
Cree un programa que lea desde un archivo de texto una expresión en notación polaca inversa como, por ejemplo: 3 4 6 5 - + * 6 + (Resultado 21) ...
 ArrayList
Cree una lista de cadenas utilizando la clase ArrayList que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacena...
 ArrayList duplicar un archivo de texto
Cree un programa que lea desde un archivo de texto y lo almacene en otro archivo de texto invirtiendo las líneas. Por lo tanto, un archivo de texto...
 Suma ilimitada
Cree un programa para permitir que el usuario ingrese una cantidad ilimitada de números. Además, pueden ingresar los siguientes comandos: "suma", par...
 ArrayList - Lector de archivos de texto
Entregue aquí su lector básico de archivos de texto. Este lector de archivos de texto siempre muestra 21 líneas del archivo de texto, y el usuario ...
 Hast Table - Diccionario
Entregue aquí su diccionario usando Hash Table...
 Paréntesis
Implementar una función para comprobar si una secuencia de paréntesis abierto y cerrado está equilibrada, es decir, si cada paréntesis abierto corresp...
 Mezclar y ordenar archivos
Cree un programa para leer el contenido de dos archivos diferentes y mostrarlo mezclado y ordenado alfabéticamente. Por ejemplo, si los archivos conti...
 ArrayList de puntos
Cree una estructura "Point3D", para representar un punto en el espacio 3-D, con coordenadas X, Y y Z. Cree un programa con un menú, en el que el us...
 Buscar en archivo
Cree un programa para leer un archivo de texto y pida al usuario oraciones para buscar en él. Leerá todo el archivo, lo almacenará en un ArrayList,...

Juan A. Ripoll - Tutoriales y Cursos de Programacion© 2025 Todos los derechos reservados.  Condiciones legales.