//Создать очередь из заданной Capacity private void CreateFromCapacity() { queue = new MyQueue <IPerson>(Input("Введите объем очереди: ")); IPerson[] array = IPersonCreate.CreateArray(queue.Capacity * 2); foreach (IPerson arrayElement in array) { queue.Enqueue(arrayElement); } }
//Создать очередь из фиксированной Capacity private void CreateFixCapacity() { queue = new MyQueue <IPerson>(); IPerson[] array = IPersonCreate.CreateArray(queue.Capacity * 2); foreach (IPerson arrayElement in array) { queue.Enqueue(arrayElement); } }
public MyQueue <T> Clone() { MyQueue <T> newQueue = new MyQueue <T>(Capacity); foreach (T cloneElement in this) { newQueue.Enqueue(cloneElement); } return(newQueue); }
//Создать очередь из готовой private void CreateFromReady() { MyQueue <IPerson> tmpQueue = new MyQueue <IPerson>(); IPerson[] add = IPersonCreate.CreateArray(10); foreach (IPerson addElement in add) { tmpQueue.Enqueue(addElement); } queue = new MyQueue <IPerson>(tmpQueue); }
public void Start() { string[] mainMenu = { "Создать очередь", "Проверка свойств коллекции.", "Проверка метода Contains", "Проверка метода Clear", "Проверка метода Dequeue", "Проверка метода Enqueue", "Проверка метода Peek", "Проверка метода ToArray", "Проверка метода Clone", "Проверка метода CopyTo", "Выход" }; int k = 9; while (true) { int sw = Use.Menu(k, "Выберите действие:", mainMenu); switch (sw) { case 1: k = Create(); break; case 2: CurrentQueue(); Console.WriteLine("\nОбъем коллекции: {0}", queue.Capacity); Console.WriteLine("\nКол-во элементов в последовательности: {0}", queue.Count); Continue(); break; case 3: CurrentQueue(); IPerson person1 = new Worker("Никич", "Семёнов", 48, 15000); IPerson person2 = queue.Peek(); Console.WriteLine("\nЧеловек " + person1.Return_se_name() + " " + person1.Return_name() + " содержиться ли в очереди?\n{0}", queue.Contains(person1)); Console.WriteLine("\nЧеловек " + person2.Return_se_name() + " " + person2.Return_name() + " содержиться ли в очереди?\n{0}", queue.Contains(person2)); Continue(); break; case 4: CurrentQueue(); queue.Clear(); Console.WriteLine("Очередь очищена..."); k = 0; Continue(); break; case 5: CurrentQueue(); IPerson person = queue.Dequeue(); Console.WriteLine("\nВывели человека: "); person.Show(); Console.WriteLine("\nОчередь после изменения: "); CurrentQueue(); Continue(); break; case 6: CurrentQueue(); IPerson add = IPersonCreate.CreateElement <Engineer>(); Console.WriteLine("\nДобавим в конец списка: "); add.Show(); queue.Enqueue(add); Console.WriteLine("\nОчередь после изменения: "); CurrentQueue(); Continue(); break; case 7: CurrentQueue(); person = queue.Peek(); Console.WriteLine("\nВывели человека: "); person.Show(); Console.WriteLine("\nОчередь не изменена: "); CurrentQueue(); Continue(); break; case 8: CurrentQueue(); IPerson[] array = queue.ToArray(); Console.WriteLine("Вывод массива: "); Output(array); Continue(); break; case 9: CurrentQueue(); MyQueue <IPerson> clone = new MyQueue <IPerson>(queue); Console.WriteLine("Вывод копии: "); MyQueueWork cloneMyQueueWork = new MyQueueWork(clone); cloneMyQueueWork.Output(); break; case 10: CurrentQueue(); queue.CopyTo(out array, queue.Count / 2); Console.WriteLine("Вывод массива: "); Output(array); Continue(); break; case 11: return; } } }