Implementing a stack using array C# Exercise - C# Programming Course

 Exercise

Implementing a stack using array

 Objetive

Implementing a stack

 Example Code

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

More C# Exercises of Dynamic Memory Management

 Implementing a queue using array
Implementing a queue...
 Queue Collections
Create a string queue using the Queue class that already exists in the DotNet platform....
 Queue Stack Reverse Polish Notation
Create a program that reads a Reverse Polish Notation expression from a text file, for example: 3 4 6 5 - + * 6 + (Result 21) Each item will be...
 ArrayList
Create a string list using the ArrayList class that already exists in the .NET platform. Once created, display all the items stored in the list. In...
 ArrayList duplicate a text file
Create a program that reads from a text file and stores it to another text file by reversing the order of lines. For example, an input text file li...
 Unlimited sum
Create a program to allow the user to enter an unlimited amount of numbers. Also, they can enter the following commands: "sum", to display the sum of...
 ArrayList - Text file reader
provide your basic text file reader here, which displays 21 lines of text and allows the user to navigate using the up and down arrow keys, and exit u...
 Hast Table - Dictionary
Submit your dictionary here using a hash table....
 Parenthesis
Implement a function to check if a sequence of open and closed parentheses is balanced. In other words, check if each open parenthesis corresponds to ...
 Mix and sort files
Create a program that reads the contents of two different files, merges them, and sorts them alphabetically. For example, if the files contain: "Dog C...
 ArrayList of Points
Create a structure named "Point3D" to represent a point in 3D space with coordinates X, Y, and Z. Create a program that has a menu where the user c...
 Search in file
Create a program that reads a text file, saves its content to an ArrayList, and asks the user to enter sentences to search within the file. The pro...

Juan A. Ripoll - Programming Tutorials and Courses © 2025 All rights reserved.  Legal Conditions.