w3resource

C# Sharp Stack Exercises: Find the maximum element in a stack

C# Sharp Stack: Exercise-5 with Solution

Write a C# program to find the maximum element in a stack.

Sample Solution:

C# Code:

using System;
public class Stack
{
    private int[] items;
    private int top;

    public Stack(int size)
    {
        items = new int[size];
        top = -1;
    }

    public bool IsEmpty()
    {
        return top == -1;
    }

    public bool IsFull()
    {
        return top == items.Length - 1;
    }

    public void Push(int item)
    {
        if (IsFull())
        {
            Console.WriteLine("Stack Full!");
            return;
        }

        items[++top] = item;
    }

    public int Pop()
    {
        if (IsEmpty())
        {
            Console.WriteLine("Stack underflow");
            return -1;
        }

        return items[top--];
    }

    public int Peek()
    {
        if (IsEmpty())
        {
            Console.WriteLine("Stack is empty");
            return -1;
        }

        return items[top];
    }

    public static int Size(Stack stack)
    {
        return stack.top + 1;
    }

    // Method to get maximum value
    public static int Max(Stack stack)
    {
        if (stack.IsEmpty())
        {
            Console.WriteLine("Stack is empty");
            return -1;
        }

        // Initialize max to the first element of the stack
        int max = stack.Peek();

        // Traverse the stack and compare each element to the current max
        for (int i = stack.top; i >= 0; i--)
        {
            if (stack.items[i] > max)
            {
                max = stack.items[i];
            }
        }

        return max;
    }


    public static void Display(Stack stack)
    {
        if (stack.IsEmpty())
        {
            Console.WriteLine("Stack is empty");
            return;
        }

        Console.WriteLine("Stack elements:");
        for (int i = stack.top; i >= 0; i--)
        {
            Console.Write(stack.items[i]+" ");
        }
    }

}

public class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Initialize a stack:");
        Stack stack = new Stack(10);
        Stack result = new Stack(10);
        Console.WriteLine("Input some elements onto the stack:");
        stack.Push(1);
        stack.Push(3);
        stack.Push(4);
        stack.Push(9);
        stack.Push(5);
        stack.Push(6);
        Stack.Display(stack);
        int max = Stack.Max(stack);
        Console.WriteLine("\nMaximum element in the stack: " + max);
    }  
}

Sample Output:

Initialize a stack:
Input some elements onto the stack:
Stack elements:
6 5 9 4 3 1
Maximum element in the stack: 9

Flowchart:

Flowchart: Find the maximum element in a stack.
Flowchart: Find the maximum element in a stack.
Flowchart: Find the maximum element in a stack.

C# Sharp Code Editor:

Improve this sample solution and post your code through Disqus

Previous: Find the minimum element in a stack.
Next: Write a C# Sharp program to find the greater and smaller value of two variables.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.