List.cs List.txt Dictionary.cs Dictionary.txt Queue.cs Queue.txt Stack.cs Stack.txt


/////////////////////////////////////////////////////////////////////
// Queue.cs - demonstrate basic properties of Queue<T>             //
//                                                                 //
// Jim Fawcett, CSE382 - Algorithms and DataStructures, Fall 2008  //
/////////////////////////////////////////////////////////////////////
/*
 * System.Collections.Generic.Queue wraps an expandable circular array
 * (contiguous memory) and provides Enqueue, Dequeue, Peek, Clear,
 * Count, ToArray, ... for managing elements.  Operations are O(1)
 * unless more capacity is needed, then O(N).
 */
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NetContainers
{
  class DemoQueue
  {
    static void Main(string[] args)
    {
      Utility.showTitle("Demonstrate Collections.Generic.Queue");
      Queue<double> Q = new Queue<double>();
      Q.Enqueue(1.5);
      Q.Enqueue(2.0);
      Q.Enqueue(2.5);
      Q.Enqueue(3.0);
      Q.Enqueue(3.5);
      Utility.show<double>(Q.ToArray());
      int len = Q.Count;
      for (int i = 0; i < len; ++i)
      {
        Console.Write("\n  dequeuing {0}", Q.Dequeue());
      }
      try
      {
        Console.Write("\n  dequeuing {0}", Q.Dequeue());
      }
      catch (Exception ex)
      {
        Console.Write("\n  Exception thrown: {0}", ex.Message);
      }
      Console.Write("\n\n");
    }
  }
}