Ejercicio
Implementar Una Pila Usando Una Matriz
Objectivo
Implementar una pila
Ejemplo Ejercicio C#
Mostrar 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
Código de Ejemplo Copiado!
Comparte este Ejercicio C# Sharp
¡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#.
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...
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:
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...
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...
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...
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...