/
bvs22
/
draft
Обзор
Документация
Войти
/
bvs22
/
draft
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
data_struct_alg/data_strcut/queue/src/queue.c
80 строк
1 KB
Batomunkuev Vladimir
Renamed dir
10 дек 2024, 17:26
10 дек 2024, 17:26
13e5472
Код
Авторство
О чём код?
#include <stdio.h> #include <malloc.h> #include "queue.h" struct queue* create_queue(int data) { struct queue* q = (struct queue*)malloc(sizeof(struct queue)); q -> data = data; q -> next = NULL; return q; } void push(struct queue** q, int data) { struct queue* temp = *q; struct queue* new_node = (struct queue*)malloc(sizeof(struct queue)); new_node -> data = data; new_node -> next = NULL; if (is_empty(*q)) { *q = new_node; return; } while (temp -> next != NULL) { temp = temp -> next; } temp -> next = new_node; } int pop(struct queue** q) { if (is_empty(*q)) { printf("Queue is empty\n"); return -1; } int data = (*q) -> data; struct queue* temp = *q; *q = (*q) -> next; free(temp); return data; } int is_empty(struct queue* q) { return q == NULL; } void destroy_queue(struct queue** q) { while (*q != NULL) { struct queue* temp = *q; *q = (*q) -> next; free(temp); } } void print_queue(struct queue* q) { if (is_empty(q)) { printf("Queue is empty\n"); return; } while (q != NULL) { printf("%d ", q -> data); q = q -> next; } printf("\n"); }