Назад Вперед Зміст

Черга

Колекція Queue<T>

Чергою називається така структура даних, у якій додавання нового елемента можливе лише з одного кінця (кінець черги), а видалення елемента можливе лише з іншого кінця (початок черги).

Черга працює за принципом FIFO (First-In, First-Out). Хто першим увійшов, той першим вийшов.

У .NET framework існує клас Queue для роботи з чергою.

Для створення об'єкта класу Queue використовується конструктор без параметрів:

Queue<T> q = new Queue<T>();

Створюється q - порожня черга, яка може містити елементи типу T.

Для роботи з чергою нам можуть знадобитися такі методи:

Необхідно пам'ятати:

Приклад

Отримати випадковим чином n цілих чисел. Усі парні числа помістити у чергу. Визначити, чи є в черзі число 10. Визначити кількість елементів у черзі. Вивести чергу на екран і знайти суму всіх її чисел.

Програма:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Черга
{
    class Program
    {
        static void Main(string[] args)
        {
            // Створення порожньої черги цілих чисел
            Queue q = new Queue();
            Random rand = new Random();
            
            Console.WriteLine("Введіть кількість чисел:");
            int n = Convert.ToInt32(Console.ReadLine());

            // Генерування випадкових чисел та додавання їх до черги
            for(int i = 1; i <= n; i++)
            {
                int x = rand.Next(1, 20);
                // Додаємо число до черги, якщо воно парне (умова x & 1 == 0)
                if ((x & 1) == 0) q.Enqueue(x);
            }

            // Перевірка наявності числа 10 у черзі
            bool containsTen = q.Contains(10);
            Console.WriteLine(containsTen ? "Число 10 є у черзі" : "Числа 10 немає у черзі");

            // Виведення кількості елементів у черзі
            int count = q.Count;
            Console.WriteLine($"Черга містить {count} чисел");

            int sum = 0;
            // Виведення та обробка елементів черги
            Console.WriteLine("Елементи черги:");
            for (int i = 1; i <= count; i++)
            {
                int y = q.Dequeue();
                sum += y;
                Console.WriteLine(y);
            }

            Console.WriteLine($"Сума чисел = {sum}");
            Console.ReadKey();
        }
    }
}

Результат роботи:

Введіть кількість чисел:
5  [приклад введення]

Числа 10 немає у черзі
Черга містить 3 чисел
Елементи черги:
4
12
8
Сума чисел = 24

Назад Вперед Зміст