From a2d696dea797faaa3157046c8ae89cd70e965bff Mon Sep 17 00:00:00 2001 From: scratko Date: Sat, 10 Aug 2024 02:46:56 +0300 Subject: Prefinal version Added client. Moved files to directories. --- server/card_queue.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 server/card_queue.c (limited to 'server/card_queue.c') diff --git a/server/card_queue.c b/server/card_queue.c new file mode 100644 index 0000000..194ea0c --- /dev/null +++ b/server/card_queue.c @@ -0,0 +1,61 @@ +#include "card_queue.h" + +#include + +void init_queue(struct card_queue *cq) +{ + cq->first = NULL; + cq->last = NULL; +} + +void push_queue(struct card_queue *cq, const char *str) +{ + struct card_queue_item *tmp = malloc(sizeof(struct card_queue_item)); + tmp->str = str; + tmp->next = NULL; + if(!cq->first) { + cq->first = tmp; + cq->last = tmp; + } else { + cq->last->next = tmp; + cq->last = tmp; + } +} + +struct card_queue_item* get_next_card_from_queue(struct card_queue *cq, + struct card_queue_item *prev) +{ + if(prev == NULL) + return cq->first; + else + return prev->next; +} + +int is_empty_queue(struct card_queue *cq) +{ + return !cq->first; +} + +const char* pop_card_queue(struct card_queue *cq) +{ + struct card_queue_item *tmp = NULL; + const char *card = NULL; + + tmp = cq->first; + cq->first = cq->first->next; + card = tmp->str; + free(tmp); + return card; +} + +int find_out_card_quantity_in_cq(const struct card_queue *cq) +{ + int counter = 0; + struct card_queue_item *tmp = cq->first; + + while(tmp) { + ++counter; + tmp = tmp->next; + } + return counter; +} -- cgit v1.2.3