annotate paper/src/stackimpl.cbc @ 2:c7acb9211784

add code, figure. and paper fix content
author ryokka
date Mon, 27 Jan 2020 20:41:36 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
1 Stack* createSingleLinkedStack(struct Context* context) {
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
2 struct Stack* stack = new Stack();
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
3 struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
4 stack->stack = (union Data*)singleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
5 singleLinkedStack->top = NULL;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
6 stack->push = C_pushSingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
7 stack->pop = C_popSingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
8 stack->pop2 = C_pop2SingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
9 stack->get = C_getSingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
10 stack->get2 = C_get2SingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
11 stack->isEmpty = C_isEmptySingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
12 stack->clear = C_clearSingleLinkedStack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
13 return stack;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
14 }
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
15
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
16 __code clearSingleLinkedStack(struct SingleLinkedStack* stack,__code next(...)) {
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
17 stack->top = NULL;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
18 goto next(...);
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
19 }
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
20
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
21 __code pushSingleLinkedStack(struct SingleLinkedStack* stack,union Data* data, __code next(...)) {
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
22 Element* element = new Element();
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
23 element->next = stack->top;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
24 element->data = data;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
25 stack->top = element;
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
26 goto next(...);
c7acb9211784 add code, figure. and paper fix content
ryokka
parents:
diff changeset
27 }