Skip to content

Custom generic implementation of stack, queue, list, vector written in C#

License

Notifications You must be signed in to change notification settings

guzlewski/Collections

Repository files navigation

coverage build

Collections

This is custom implementaion of generic Stack, Queue, List and Vector written in C#. Unit tests coverage: 100%. Vector is similar to List but has different complexity.
All collections has implemented IEnumerable interface, List and Vector IReversable - iterate in reverse order. Methods and features are similar to System.Collections.Generic.

Complexity

[] Add AddRange Clear Contains ElementAt GetEnumerator IndexOf Insert PopBack Remove RemoveAll RemoveAt Reversed ToArray
List O(n) O(1) O(n) O(1) O(n) O(n) O(1) O(n) O(n) - O(n) O(n) O(n) O(1) O(n)
Vector O(1) O(1)/O(n) O(n) O(1) O(n) O(1) O(1) O(n) O(n) O(1) O(n) O(n) O(n) O(1) O(n)
Clear Contains Dequeue Enqueue GetEnumerator Peek Pop Push ToArray TryDequeue TryPeek TryPop
Queue O(1) O(n) O(1) O(1) O(1) O(1) - - O(n) O(1) O(1) -
Stack O(1) O(n) - - O(1) O(1) O(1) O(1) O(n) - O(1) O(1)

How to use

using Collections;

namespace Example
{
    class CollectionsSample
    {
        public static void Main(string[] args)
        {
            var stack = new Stack<int>();
            stack.Push(10);

            var queue = new Queue<char>();
            queue.Enqueue('c');

            var list = new List<string>();
            list.Add("string");

            var vector = new Vector<double>();
            vector.Add(3.14);
            
            foreach(var item in stack)
            {
                ...
            }
        }
    }
}

About

Custom generic implementation of stack, queue, list, vector written in C#

Topics

Resources

License

Stars

Watchers

Forks

Languages