Stack (C)
From LiteratePrograms
This program is a code dump.
Code dumps are articles with little or no documentation or rearrangement of code. Please help to turn it into a literate program. Also make sure that the source of this code does consent to release it under the MIT or public domain license.
This is an implementation of a Stack in C. WARNING! This article is inherently unstable.
#define STACKSIZE 100
struct stack {
int top;
int items[STACKSIZE];
};
int
pop(struct stack *pstack)
{
if(!empty(pstack)) {
return ((pstack->items)[pstack->top--]);
}
else {
printf("STACK UNDERFLOW DONCE\n");
exit(1);
}
}
void
push(int val, struct stack *pstack)
{
if(pstack->top < (STACKSIZE - 1)) {
(pstack->items)[pstack->top++] = val;
}
else {
printf("STACK OVERFLOW DONCE");
exit(1);
}
}
int
stacktop(struct stack *pstack)
{
return ((pstack->items)[pstack->top]);
}
int
empty(struct stack* pstack) {
if(pstack->top == 0) { return 1; }
else { return 0; }
}
| Download code |