Очередь в языке программирования 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 "

Конвертация PPTX в PDF
GridSearchCV - поиск оптимальных параметров модели с использованием кросс-валидации
Модель A3 B3: основные характеристики и преимущества
JavaScript forEach: простая и эффективная работа с массивами
Ubuntu Studio - ваш идеальный выбор для креативности и профессиональной работы
Добро пожаловать в Jupiter Lab - мир исследований и открытий
Сортировка массива в языке программирования C
AssertionError - Ошибка утверждения Python
Node Sass: компилятор Sass для Node.js
Аплог - надежная защита вашего бизнеса от киберугроз