コード例 #1
0
        public MyLinkedQueue(MyQueue <T> Queue)
        {
            Head  = null;
            Tail  = null;
            Count = Queue.Count;
            T[] data = new T[Count];
            Queue.CopyTo(data, 0);
            Head = new Node <T>(data[0]);
            Node <T> n = Head;

            for (int i = 1; i < Count; i++)
            {
                n.next      = new Node <T>(data[i]);
                n.next.prev = n;
                n           = n.next;
            }
            Tail = n;
        }
コード例 #2
0
        public MyArrayQueue(MyQueue <T> Queue)
        {
            Count = Queue.Count;
            MyArrayQueue <T> q = Queue as MyArrayQueue <T>;

            head = 0;
            if (q != null)
            {
                Capacity = q.Capacity;
                tail     = Count % Capacity;
                full     = q.full;
            }
            else
            {
                Capacity = ((Count / 10) + 1) * 10;
                tail     = Count % Capacity;
                full     = (Count != 0) && (head == tail);
            }
            data = new T[Capacity];
            q.CopyTo(data, 0);
        }
コード例 #3
0
 public QueueEnumerator(MyQueue <T> queue)
 {
     this.queue = queue;
     current    = null;
 }