You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bat/tests/syntax-tests/highlighted/C-Sharp/Stack.cs

65 lines
9.7 KiB
C#

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

namespace StackImplementation
{
 internal class Stack<T>
 {
 private int _top;
 private const int Capacity = 4;
 private readonly T[] _stack = new T[Capacity];
 public Stack()
 {
 _top = -1;
 }
 private bool IsEmpty()
 {
 return _top < 0;
 }
 private bool IsFull()
 {
 return _top == Capacity - 1;
 }
 public void Peek()
 {
 System.Console.WriteLine(!IsEmpty() ? $"The topmost element is: {_stack[_top]}" : "The stack is empty.");
 }
 public T Pop()
 {
 return !IsEmpty() ? _stack[_top--] : default;
 }
 public void Push(T element)
 {
 if (!IsFull())
 {
 _stack[++_top] = element;
 }
 else
 {
 System.Console.WriteLine("Cannot push - the stack is full.");
 }
 }
 public override string ToString()
 {
 if (IsEmpty())
 {
 return "The stack is empty.";
 }
 var depiction = "";
 for (var index = 0; index < _top; index++)
 {
 depiction += _stack[index].ToString() + ' ';
 }
 depiction += _stack[_top].ToString();
 return $"Stack: [{depiction}]";
 }
 }
}