annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 #interface "Queue.h"
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3 Queue* createSingleLinkedQueue(struct Context* context) {
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4 struct Queue* queue = new Queue(); // Allocate Queue interface
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 struct SingleLinkedQueue* singleLinkedQueue = new SingleLinkedQueue(); // Allocate Queue implement
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 queue->queue = (union Data*)singleLinkedQueue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 singleLinkedQueue->top = new Element();
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 singleLinkedQueue->last = singleLinkedQueue->top;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9 queue->clear = C_clearSingleLinkedQueue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 queue->put = C_putSingleLinkedQueue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 queue->take = C_takeSingleLinkedQueue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 queue->isEmpty = C_isEmptySingleLinkedQueue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 return queue;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 }
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 __code clearSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(...)) {
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 queue->top = NULL;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 goto next(...);
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 }
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21 __code putSingleLinkedQueue(struct SingleLinkedQueue* queue, union Data* data, __code next(...)) {
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 Element* element = new Element();
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 element->data = data;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24 element->next = NULL;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 queue->last->next = element;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26 queue->last = element;
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27 goto next(...);
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
28 }
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
29
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
30 .....