public AnyType Dequeue() { if (FirstNode == null && LastNode == null && Count == 0) { throw new CollectionsDataNotFoundException("Queue.cs", "Queue<AnyType>", "Dequeue", "", "Queue is empty! No data exists in Queue!"); } if (FirstNode != null && LastNode != null && FirstNode == LastNode && Count == 1) { AnyType Result = FirstNode.Data; FirstNode = null; LastNode = null; Count--; return(Result); } if (FirstNode != null && LastNode != null && FirstNode != LastNode && Count > 1) { QueueNode <AnyType> BackupNode = FirstNode; AnyType Result = FirstNode.Data; FirstNode = FirstNode.Next; FirstNode.Prev = null; BackupNode = null; Count--; return(Result); } throw new CollectionsUnknownErrorException("Queue.cs", "Queue<AnyType>", "Dequeue", "", "A Queue has either the size of 0, 1 or more than 1. This unknown exception should not execute!"); }
void IEnumerator.Reset() { EnumNode = null; }
public bool NotContains(QueueNode <AnyType> Node) { return(FindFirst(Node) == null); }
public bool Remove(QueueNode <AnyType> Node) { if (Node == null) { throw new CollectionsDataNullException("Queue.cs", "Queue<AnyType>", "Delete", "Node", "Node cannot be NULL!"); } if (NotContains(Node)) { throw new CollectionsDataNotFoundException("Queue.cs", "Queue<AnyType>", "Delete", "Node", "Node cannot be found in this Queue!"); } if (Node.Prev == null && Node.Next == null && Count == 1) { FirstNode = null; LastNode = null; Node = null; Count--; return(true); } if (Node.Prev == null && Node.Next != null && Count > 1) { FirstNode = Node.Next; FirstNode.Prev = null; Node = null; Count--; return(true); } if (Node.Prev != null && Node.Next == null && Count > 1) { LastNode = Node.Prev; LastNode.Next = null; Node = null; Count--; return(true); } if (Node.Prev != null && Node.Next != null && Count > 2) { Node.Prev.Next = Node.Next; Node.Next.Prev = Node.Prev; Node = null; Count--; return(true); } return(false); }
public QueueNode <AnyType> Find(QueueNode <AnyType> Node) { return(FindFirst(Node)); }