stack createStack() {
stack s;
s.elts = (stackElt*)malloc(STACK_CAPACITY * sizeof(stackElt));
s.size = 0;
return(s);
}
bool isEmptyStack(stack s) {return(s.size == 0);}
bool isFullStack (stack s) {return(s.size == STACK_CAPACITY);}
int sizeOfStack (stack s) {return(s.size);}
stack push(stackElt e, stack s) { // s is not full
s.elts[s.size++] = e;
return(s);
}
stack pop(stack s) { // s is not empty
s.size--;
return(s);
}
stackElt top(stack s) { // s is not empty
return(s.elts[s.size - 1]);
}
void showStack(stack s) {
int i = s.size - 1;
if (i > 0) do {
printf("%4c", s.elts[i]);
} while(i--);
printf("\n");
}