/// <summary> /// returns the first of specified type in the queue /// if none of specified type, returns null /// if invalid type, returns null and reports invalid on console /// </summary> /// <param name="pref"> type of animal requested </param> /// <returns> found animal or null </returns> public Animal Dequeue(string pref) { Animal temp = null; if (pref == "") { return(Primary.Dequeue()); } if (pref != "dog" && pref != "cat") { Console.WriteLine($"This shelter doesn't house {pref}s."); return(temp); } temp = Primary.Dequeue(); while (Primary.Front != null && temp.Species != pref) { Helper.Enqueue(temp); temp = Primary.Dequeue(); } while (Primary.Front != null) { Helper.Enqueue(Primary.Dequeue()); } Queue hold; hold = Primary; Primary = Helper; Helper = hold; return(temp); }
public Animal Dequeue(string pref) { Animal temp = null; if (pref == "") { return(Primary.Dequeue()); } if (pref != "dog" && pref != "cat") { Console.WriteLine("This animal does not exist"); return(temp); } temp = Primary.Dequeue(); // Checking to see if there is a match, if not send to secondary queue // If the primary has anything left in it after finding a match go ahead and send the rest to the second queue while (Primary.Front != null && temp.Species != pref) { Secondary.Enqueue(temp); temp = Primary.Dequeue(); } while (Primary.Front != null) { Secondary.Enqueue(Primary.Dequeue()); } Queue temp2; temp2 = Primary; Primary = Secondary; Secondary = temp2; return(temp); }