// 清空 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; }
// 出队 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); }