view src/stack.c @ 2:b6182f00de82

The work I have so far
author Jonathan Pevarnek <pevarnj@gmail.com>
date Tue, 01 Mar 2011 02:39:27 -0500
parents
children 0aa0ad9e1cc3
line wrap: on
line source

#include <stack.h>

eltType pop(struct Stack *stack)
{
	if(stack->isEmpty) {
		sPrint("ERROR: STACK IS EMPTY.\n");
		return -1;
	} else if(stack->top == 0) {
		stack->isEmpty = 1;
		return stack->values[stack->top];
	} else if(stack->top < 0) {
		return 0; //TODO figure out a better way to handle errors
	} else {
		return stack->values[stack->top--];
	}
}

void push(struct Stack *stack, eltType val)
{
	if(stack->isEmpty) {
		stack->isEmpty = 0;
		stack->values[stack->top] = val;
	} else {
		stack->values[++stack->top] = val;
	}
}

void initStack(struct Stack *stack)
{
	stack->isEmpty = 1;
	stack->top = 0;
}