Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Wypożyczalnia samochodów id i data w kolejce
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define CAR_NAME_SIZE 20
- struct queue_node{
- unsigned int id;
- char make[CAR_NAME_SIZE];
- struct queue_node *next;
- };
- struct queue_pointers{
- struct queue_node *head, *tail;
- } fifo;
- void enqueue(struct queue_pointers *fifo, unsigned int id, char *make)
- {
- struct queue_node *new_node = (struct queue_node*)malloc(sizeof(struct queue_node));
- if(new_node){
- new_node->id = id;
- strncpy(new_node->make, make, CAR_NAME_SIZE);
- new_node->next = NULL;
- if(fifo->head == NULL)
- fifo->head = fifo->tail = new_node;
- else{
- fifo->tail->next = new_node;
- fifo->tail = new_node;
- }
- }
- }
- int dequeue(struct queue_pointers *fifo)
- {
- if(fifo->head){
- struct queue_node *tmp = fifo->head->next;
- int tmp_id = fifo->head->id;
- free(fifo->head);
- fifo->head = tmp;
- if(tmp == NULL)
- fifo->tail = NULL;
- return tmp_id;
- }
- return -1;
- }
- void print_queue(struct queue_pointers fifo)
- {
- while(fifo.head){
- printf("%u: %s\n", fifo.head->id, fifo.head->make);
- fifo.head = fifo.head->next;
- }
- printf("\n");
- }
- int main(void)
- {
- puts("Lista dostepnych samochodow:");
- enqueue(&fifo, 1, "Samochod 1");
- enqueue(&fifo, 2, "Samochod 2");
- enqueue(&fifo, 3, "Samochod 3");
- print_queue(fifo);
- puts("Wypozyczam pierwszy samochod:");
- dequeue(&fifo);
- print_queue(fifo);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment