comparison src/singleLinkedQueue.cbc @ 1:73127e0ab57c

(none)
author soto@cr.ie.u-ryukyu.ac.jp
date Tue, 08 Sep 2020 18:38:08 +0900
parents
children
comparison
equal deleted inserted replaced
0:b919985837a3 1:73127e0ab57c
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 .....