From e, 1 Week ago, written in C#.
Embed
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace customStack
  9. {
  10.     class myStack :ICollection, IEnumerable, IEnumerator
  11.     {
  12.         private object[] myArray = new object[0];
  13.         private int currentINDEX = 0;
  14.         public  object Pop()
  15.         {
  16.             object o = myArray[myArray.Length - 1];
  17.             Array.Resize(ref myArray, myArray.Length-1);
  18.             return o;
  19.         }
  20.         public  void Push(object obj)
  21.         {
  22.             Array.Resize(ref myArray, myArray.Length + 1);
  23.             myArray[currentINDEX++] = obj;
  24.         }      
  25.  
  26.         public int Count {
  27.             get { return myArray.Length; }
  28.         }
  29.  
  30.         public object SyncRoot => throw new NotImplementedException();
  31.  
  32.         public bool IsSynchronized => throw new NotImplementedException();
  33.  
  34.         object IEnumerator.Current
  35.         {
  36.             get { return myArray[currentINDEX]; }
  37.         }
  38.  
  39.         public void CopyTo(Array array2, int index)
  40.         {
  41.             for (int i = index; i < myArray.Length; i++)
  42.             {
  43.                 array2.SetValue(myArray[i], i - index);
  44.             }
  45.         }
  46.        
  47.         public IEnumerator GetEnumerator()
  48.         {
  49.             return this;
  50.         }
  51.  
  52.         public bool MoveNext()
  53.         {
  54.             if (myArray.Length-1==currentINDEX)
  55.             {
  56.                 return false;
  57.             }
  58.             return true;
  59.         }
  60.  
  61.         public void Reset()
  62.         {
  63.             myArray = new object[0];
  64.         }
  65.     }
  66.  
  67.    
  68. }
  69.