Advertisement
VssA

Untitled

Feb 16th, 2024
967
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.92 KB | None | 0 0
  1. using System.Collections.Generic;
  2.  
  3. namespace TodoApplication
  4. {
  5.     public class LimitedSizeStack<T>
  6.     {
  7.         private readonly LinkedList<T> stackFromList = new LinkedList<T>();
  8.         private readonly int limitOfStack;
  9.        
  10.         public LimitedSizeStack(int limit)
  11.         {
  12.             limitOfStack = limit;  
  13.         }
  14.  
  15.         public void Push(T item)
  16.         {
  17.             if(limitOfStack != 0)
  18.             {
  19.                 if(stackFromList.Count >= limitOfStack)
  20.                 {
  21.                     stackFromList.RemoveFirst();
  22.                 }
  23.                 stackFromList.AddLast(item);
  24.             }
  25.         }
  26.  
  27.         public T Pop()
  28.         {
  29.             var deepestValue = stackFromList.Last;
  30.             stackFromList.RemoveLast();
  31.             return deepestValue.Value;
  32.         }
  33.  
  34.         public int Count
  35.         {
  36.             get
  37.             {
  38.                 return stackFromList.Count;
  39.             }
  40.         }
  41.     }
  42. }
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement