Go (Golang) Queue: методы и примеры кода для реализации очереди

В Go (Golang) очередь — это структура данных, которая соответствует принципу «первым пришел — первым обслужен» (FIFO). Вот некоторые распространенные методы, используемые в реализации очереди в Go, а также примеры кода:

  1. Поставить в очередь: добавляет элемент в конец очереди.

    func (q *Queue) Enqueue(item interface{}) {
    q.items = append(q.items, item)
    }
  2. Извлечь из очереди: удаляет и возвращает элемент в начале очереди.

    func (q *Queue) Dequeue() interface{} {
    if q.IsEmpty() {
        return nil
    }
    item := q.items[0]
    q.items = q.items[1:]
    return item
    }
  3. Просмотр: возвращает элемент в начале очереди, не удаляя его.

    func (q *Queue) Peek() interface{} {
    if q.IsEmpty() {
        return nil
    }
    return q.items[0]
    }
  4. IsEmpty: проверяет, пуста ли очередь.

    func (q *Queue) IsEmpty() bool {
    return len(q.items) == 0
    }
  5. Размер: возвращает количество элементов в очереди.

    func (q *Queue) Size() int {
    return len(q.items)
    }
  6. Очистить: удаляет все элементы из очереди.

    func (q *Queue) Clear() {
    q.items = nil
    }
  7. Содержит: проверяет, содержит ли очередь определенный элемент.

    func (q *Queue) Contains(item interface{}) bool {
    for _, v := range q.items {
        if v == item {
            return true
        }
    }
    return false
    }

Эти методы предоставляют базовую функциональность для работы с очередями в Go. Однако стоит отметить, что очереди можно реализовать различными способами, например, с помощью срезов или связанных списков. Представленные примеры кода предполагают использование реализации на основе срезов.