示例#1
0
        // 清空
        public void Clear()
        {
            while (front != rear)
            {
                QueueLinkNode <T> toClear = front.next;
                front.next = toClear.next;

                if (rear == toClear)
                {
                    rear = front;
                }

                toClear.Reset();
            }
            front.Reset();

            length = 0;
        }
示例#2
0
        // 出队
        public T DeQueue()
        {
            if (IsEmpty())
            {
                LogError("The Queue is Empty!");
                return(default(T));
            }

            QueueLinkNode <T> node = front.next;

            front.next = node.next;
            if (node == rear)
            {
                rear = front;
            }

            T data = node.data;

            node.Reset();

            length--;
            return(data);
        }