コード例 #1
0
 public MyQueueEnumerator(MyQueue <T> q)
 {
     Collection = new T[q.Count];
     q.CopyTo(Collection, 0);
     curIndex = -1;
     curElem  = default(T);
 }
コード例 #2
0
        //переопределение стандартных методов

        public override bool Equals(object obj)
        {
            MyQueue <T> q = obj as MyQueue <T>;

            if (q == null || Count != q.Count)
            {
                return(false);
            }
            else
            {
                T[] arr1 = new T[Count];
                T[] arr2 = new T[Count];
                CopyTo(arr1, 0);
                q.CopyTo(arr2, 0);
                bool b = true;
                int  i = 0;
                while (i < Count && b == true)
                {
                    if (!arr1[i].Equals(arr2[i]))
                    {
                        b = false;
                    }
                    i++;
                }
                return(b);
            }
        }
コード例 #3
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;
        }