Mercurial > hg > Papers > 2021 > anatofuz-master
view paper/src/SingleLinkedQueueOld.cbc @ 88:04a6b05666c1
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 05 Feb 2021 14:00:28 +0900 |
parents | e1842c36937e |
children |
line wrap: on
line source
#include "../context.h" #include <stdio.h> #interface "Queue.h" Queue* createSingleLinkedQueue(struct Context* context) { struct Queue* queue = new Queue(); struct SingleLinkedQueue* singleLinkedQueue = new SingleLinkedQueue(); queue->queue = (union Data*)singleLinkedQueue; singleLinkedQueue->top = new Element(); singleLinkedQueue->last = singleLinkedQueue->top; queue->take = C_takeSingleLinkedQueue; queue->put = C_putSingleLinkedQueue; queue->isEmpty = C_isEmptySingleLinkedQueue; queue->clear = C_clearSingleLinkedQueue; return queue; } __code clearSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(...)) { queue->top = NULL; goto next(...); } __code putSingleLinkedQueue(struct SingleLinkedQueue* queue, union Data* data, __code next(...)) { Element* element = new Element(); element->data = data; element->next = NULL; queue->last->next = element; queue->last = element; goto next(...); }