Пример #1
0
        public void Enqueue(LinkedQueueItem <T> item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("Cannot add null items.");
            }

            if (this.EnqueuedInstances.Contains(item))
            {
                throw new InvalidOperationException("Instance already added.");
            }

            if (this.FirstItem == null)
            {
                this.FirstItem = item;
                this.LastItem  = item;
            }
            else
            {
                this.LastItem.NextItem = item;
            }

            this.EnqueuedInstances.Add(item);
        }
Пример #2
0
        private static void Main()
        {
            var first = new LinkedQueueItem <int>(1);
            var sec   = new LinkedQueueItem <int>(2);

            var q = new LinkedQueue <int>();

            try
            {
                Console.WriteLine(q.Dequeue());
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("-----Enqueuing 1");
            q.Enqueue(first);
            Console.WriteLine("-----Dequeuing");
            Console.WriteLine(q.Dequeue().Value);
            Console.WriteLine("-----Enqueuing value 1");
            q.Enqueue(first);
            Console.WriteLine("-----Enqueuing value 2");
            q.Enqueue(sec);
            Console.WriteLine("-----Dequeuing");
            Console.WriteLine(q.Dequeue().Value);
            Console.WriteLine("-----Dequeuing");
            Console.WriteLine(q.Dequeue().Value);

            Console.WriteLine("-----Dequeuing");
            try
            {
                Console.WriteLine(q.Dequeue());
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("-----Enqueuing value 1");
            q.Enqueue(first);
            try
            {
                Console.WriteLine("-----Enqueuing value 1");
                q.Enqueue(first);
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("-----Enqueuing null");
                q.Enqueue(null);
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.Message);
            }
        }