Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 77 стр.

UptoLike

76
Очередь, как и стек, является еще одним частным случаем
однонаправленного списка. Добавление элементов в очередь выполняется в
один конец («хвост»), а выборка производится с другого конца («головы»);
при выборке элемент исключается из очереди. Другие операции с очередью
не определены. Очередь реализует принцип обслуживания FIFO («first in
first out», первым пришел – первым вышел).
В С# очередь представляется классом Queue, который также как и стек
реализуется как коллекция общего назначения и как класс-обобщение.
Среди методов и свойств класса Queue выделяют:
Count свойство получения числа элементов в очереди;
Enqueue(object) метод добавления элемента в очередь;
Dequeue() метод извлечения элемента из очереди;
Peek() метод получения элемента, который находится в вершине
очереди, не извлекая его;
Contains(object) метод проверки наличия в очереди заданного
объекта;
Clear() очистка очереди.
Рассмотрим пример использования очереди. Пусть дан массив целых
чисел. Распечатать элементы этого массива по группам: сначала все числа,
заканчивающиеся на 0, затем – на 1, и т.д.
Для решения задачи будем использовать массив очередей. Каждая
очередь из массива будет хранить коллекцию чисел, заканчивающихся на
цифру, которая одновременно является номером очереди.
static void Reordering(int [] x)
{
// Создаем массив очередей для хранения чисел, в которых
// последние цифры совпадают с номером элемента массива
Queue[] numbers = new Queue[10];
for (int i = 0; i < 10; i++)
numbers[i] = new Queue();
// Распределяем числа из массива
// по соответствующим очередям
foreach (int el in x)
{
int k = el % 10;
numbers[k].Enqueue(el);
}
// Печать групп чисел путем извлечения
// элементов из очередей
for (int i = 0; i < 10; i++)
       Очередь, как и стек, является еще одним частным случаем
однонаправленного списка. Добавление элементов в очередь выполняется в
один конец («хвост»), а выборка производится с другого конца («головы»);
при выборке элемент исключается из очереди. Другие операции с очередью
не определены. Очередь реализует принцип обслуживания FIFO («first in –
first out», первым пришел – первым вышел).
       В С# очередь представляется классом Queue, который также как и стек
реализуется как коллекция общего назначения и как класс-обобщение.
       Среди методов и свойств класса Queue выделяют:
     Count – свойство получения числа элементов в очереди;
     Enqueue(object) – метод добавления элемента в очередь;
     Dequeue() – метод извлечения элемента из очереди;
     Peek() – метод получения элемента, который находится в вершине
       очереди, не извлекая его;
     Contains(object) – метод проверки наличия в очереди заданного
       объекта;
     Clear() – очистка очереди.

     Рассмотрим пример использования очереди. Пусть дан массив целых
чисел. Распечатать элементы этого массива по группам: сначала все числа,
заканчивающиеся на 0, затем – на 1, и т.д.

     Для решения задачи будем использовать массив очередей. Каждая
очередь из массива будет хранить коллекцию чисел, заканчивающихся на
цифру, которая одновременно является номером очереди.

   static void Reordering(int [] x)
   {
      // Создаем массив очередей для хранения чисел, в которых
      // последние цифры совпадают с номером элемента массива
      Queue[] numbers = new Queue[10];
      for (int i = 0; i < 10; i++)
         numbers[i] = new Queue();
      // Распределяем числа из массива
      // по соответствующим очередям
      foreach (int el in x)
      {
         int k = el % 10;
         numbers[k].Enqueue(el);
      }
      // Печать групп чисел путем извлечения
      // элементов из очередей
      for (int i = 0; i < 10; i++)
                                                                           76