Mercurial > hg > Papers > 2022 > soto-sigos
comparison Paper/src/singleLinkedQueue.cbc @ 0:14a0e409d574
ADD fast commit
author | soto <soto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Apr 2022 23:13:44 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:14a0e409d574 |
---|---|
1 #interface "Queue.h" | |
2 | |
3 Queue* createSingleLinkedQueue(struct Context* context) { | |
4 struct Queue* queue = new Queue(); // Allocate Queue interface | |
5 struct SingleLinkedQueue* singleLinkedQueue = new SingleLinkedQueue(); // Allocate Queue implement | |
6 queue->queue = (union Data*)singleLinkedQueue; | |
7 singleLinkedQueue->top = new Element(); | |
8 singleLinkedQueue->last = singleLinkedQueue->top; | |
9 queue->clear = C_clearSingleLinkedQueue; | |
10 queue->put = C_putSingleLinkedQueue; | |
11 queue->take = C_takeSingleLinkedQueue; | |
12 queue->isEmpty = C_isEmptySingleLinkedQueue; | |
13 return queue; | |
14 } | |
15 | |
16 __code clearSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(...)) { | |
17 queue->top = NULL; | |
18 goto next(...); | |
19 } | |
20 | |
21 __code putSingleLinkedQueue(struct SingleLinkedQueue* queue, union Data* data, __code next(...)) { | |
22 Element* element = new Element(); | |
23 element->data = data; | |
24 element->next = NULL; | |
25 queue->last->next = element; | |
26 queue->last = element; | |
27 goto next(...); | |
28 } | |
29 | |
30 ..... |