annotate paper/src/singleLinkedQueue.cbc @ 3:959f4b34d6f4

add final thesis
author soto
date Tue, 09 Feb 2021 18:44:53 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
1 #interface "Queue.h"
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
2
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
3 Queue* createSingleLinkedQueue(struct Context* context) {
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
4 struct Queue* queue = new Queue(); // Allocate Queue interface
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
5 struct SingleLinkedQueue* singleLinkedQueue = new SingleLinkedQueue(); // Allocate Queue implement
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
6 queue->queue = (union Data*)singleLinkedQueue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
7 singleLinkedQueue->top = new Element();
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
8 singleLinkedQueue->last = singleLinkedQueue->top;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
9 queue->clear = C_clearSingleLinkedQueue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
10 queue->put = C_putSingleLinkedQueue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
11 queue->take = C_takeSingleLinkedQueue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
12 queue->isEmpty = C_isEmptySingleLinkedQueue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
13 return queue;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
14 }
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
15
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
16 __code clearSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(...)) {
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
17 queue->top = NULL;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
18 goto next(...);
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
19 }
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
20
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
21 __code putSingleLinkedQueue(struct SingleLinkedQueue* queue, union Data* data, __code next(...)) {
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
22 Element* element = new Element();
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
23 element->data = data;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
24 element->next = NULL;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
25 queue->last->next = element;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
26 queue->last = element;
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
27 goto next(...);
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
28 }
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
29
959f4b34d6f4 add final thesis
soto
parents:
diff changeset
30 .....