Untested iterative implementation of evaluate
This commit is contained in:
17
lib/stack.c
17
lib/stack.c
@ -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);
|
||||
}
|
||||
|
@ -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 */
|
Reference in New Issue
Block a user