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; }
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); }
public QueueEnumerator(MyQueue <T> queue) { this.queue = queue; current = null; }