comparison src/stackimpl.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 Stack* createSingleLinkedStack(struct Context* context) {
2 struct Stack* stack = new Stack();
3 struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
4 stack->stack = (union Data*)singleLinkedStack;
5 singleLinkedStack->top = NULL;
6 stack->push = C_pushSingleLinkedStack;
7 stack->pop = C_popSingleLinkedStack;
8 stack->pop2 = C_pop2SingleLinkedStack;
9 stack->get = C_getSingleLinkedStack;
10 stack->get2 = C_get2SingleLinkedStack;
11 stack->isEmpty = C_isEmptySingleLinkedStack;
12 stack->clear = C_clearSingleLinkedStack;
13 return stack;
14 }
15
16 __code clearSingleLinkedStack(struct SingleLinkedStack* stack,__code next(...)) {
17 stack->top = NULL;
18 goto next(...);
19 }
20
21 __code pushSingleLinkedStack(struct SingleLinkedStack* stack,union Data* data, __code next(...)) {
22 Element* element = new Element();
23 element->next = stack->top;
24 element->data = data;
25 stack->top = element;
26 goto next(...);
27 }