Очередь в языке программирования C

Очередь в языке C - это структура данных, которая позволяет хранить и извлекать элементы по принципу "первым пришёл, первым вышел" (FIFO - first in, first out). В данном ответе описано, как создать и использовать очередь в языке C с примерами кода.

Для начала нам понадобится определить структуру для элемента очереди. В этой структуре мы будем хранить значение элемента и указатель на следующий элемент:

typedef struct Node {
   int data;
   struct Node* next;
} Node;

Теперь создадим структуру для самой очереди. В ней мы будем хранить указатели на начало и конец:

typedef struct Queue {
   Node* front;
   Node* rear;
} Queue;

Далее опишем функцию enqueue, которая добавляет элемент в конец очереди:

void enqueue(Queue* queue, int value) {
   Node* newNode = (Node*)malloc(sizeof(Node));
   newNode->data = value;
   newNode->next = NULL;

   if (queue->rear == NULL) {
      queue->front = newNode;
      queue->rear = newNode;
   } else {
      queue->rear->next = newNode;
      queue->rear = newNode;
   }
}

Аналогично, создадим функцию dequeue, которая удаляет элемент из начала очереди:

int dequeue(Queue* queue) {
   if (queue->front == NULL) {
      printf("Очередь пуста!\n");
      return INT_MIN; // Возвращаем минимальное значение для типа int
   }
   
   int value = queue->front->data;
   Node* temp = queue->front;
   queue->front = queue->front->next;
   
   if (queue->front == NULL) {
      queue->rear = NULL;
   }
   
   free(temp);
   return value;
}

Теперь, чтобы использовать очередь, мы можем создать экземпляр структуры Queue и добавить элементы в очередь с помощью функции enqueue. Затем мы можем удалить элементы из очереди с помощью функции dequeue и выводить их значения на экран:

int main() {
   Queue queue;
   queue.front = NULL;
   queue.rear = NULL;

   enqueue(&queue, 5);
   enqueue(&queue, 10);
   enqueue(&queue, 15);

   printf("%d\n", dequeue(&queue)); // Выведет 5
   printf("%d\n", dequeue(&queue)); // Выведет 10
   printf("%d\n", dequeue(&queue)); // Выведет 15

   return 0;
}

Выполнив этот код, мы добавляем значения 5, 10 и 15 в очередь, а затем извлекаем их поочередно. Результат на экране будет следующим:


5
10
15

Таким образом, мы создали простую очередь в языке C и продемонстрировали добавление и удаление элементов из нее с использованием функций enqueue и dequeue.

Очереди являются важной структурой данных в программировании и находят широкое применение во многих задачах.

Похожие вопросы на: "queue c "

Enum в Java: основы и применение
Setlocale: настройка локализации для удобства пользователей
Тернарный оператор Java
Преобразование строки в целое число в Python
Использование оператора If Else в JavaScript
Обновите приложение для входа в Telegram
UI jQuery: создание интерфейсов с помощью JavaScript библиотеки
Как изменить ник в дискорде
Margin top - инструмент для совершенного веб-дизайна
Border Collapse: свойство границ в CSS