Untested iterative implementation of evaluate

This commit is contained in:
David Adrian
2013-10-11 12:13:42 -04:00
parent 2453404604
commit f2ba9d7621
4 changed files with 111 additions and 8 deletions

View File

@ -24,7 +24,7 @@ void free_stack(stack_t* stack)
xfree(stack);
}
void push(stack_t* stack, void* elt)
void stack_push(stack_t* stack, void* elt)
{
if (stack->cur_size == stack->max_size) {
stack->max_size *= 2;
@ -33,8 +33,17 @@ void push(stack_t* stack, void* elt)
stack->arr[stack->cur_size++] = elt;
}
void* pop(stack_t* stack)
void stack_pop(stack_t* stack)
{
void* res = stack->arr[--stack->cur_size];
return res;
--stack->cur_size;
}
void* stack_peek(stack_t* stack)
{
return stack->arr[stack->cur_size - 1];
}
int stack_is_empty(stack_t* stack)
{
return (stack->cur_size == 0);
}

View File

@ -9,7 +9,10 @@ typedef struct stack stack_t;
stack_t* alloc_stack(size_t size);
void free_stack(stack_t* stack);
void push(stack_t* stack, void* elt);
void* pop(stack_t* stack);
void stack_push(stack_t* stack, void* elt);
void stack_pop(stack_t* stack);
void* stack_peek(stack_t* stack);
int stack_is_empty(stack_t* stack);
#endif /* ZMAP_STACK_H */