Files
dslab/7.c
2022-12-27 19:44:11 +05:30

65 lines
878 B
C

#include <stdio.h>
#include <stdlib.h>
typedef struct Node node;
struct Node {
int id;
struct Node *next;
};
typedef struct Queue queue;
struct Queue {
node *head;
node *tail;
};
void insert(queue *q, int id) {
node *new = malloc(sizeof(node));
new->id = id;
new->next = NULL;
if (q->tail)
q->tail->next = new;
else
q->head = new;
q->tail = new;
}
void delete (queue *q) {
if (!q->head)
return;
node *next = q->head->next;
free(q->head);
q->head = next;
if (!q->head)
q->tail = NULL;
}
void display(queue *q) {
node *cur = q->head;
while (cur != NULL) {
printf("%d ", cur->id);
cur = cur->next;
}
printf("\n");
}
int main() {
queue *q = malloc(sizeof(queue));
insert(q, 56);
insert(q, 3);
insert(q, 99);
delete(q);
display(q);
// free
while (q->head != NULL)
delete(q);
free(q);
}