Esempio n. 1
0
// clear stack
int clear(stack *my_stack)
{
    Stack_OK(my_stack);
    if (Stack_OK(my_stack))
        Stack_dump(my_stack);
    else
        {
            my_stack->data = 0;
            errno = 0;
            return 0;
        }
    return -1;
}
Esempio n. 2
0
// add element
int push (stack *my_stack, double i)
{
    Stack_OK(my_stack);
    if (!full(my_stack))
    {
        my_stack->data[(my_stack->size)++] = i;
        my_stack->top = i;
        Stack_OK(my_stack);
        return 0;
    }
    else
        errno = E2BIG;
    return -1;

}
Esempio n. 3
0
void CStack::Assert_OK()const
{
    if (!Stack_OK())
    {
        Stack_Dump();
        assert(!"Bad object CStack");
    }
}
Esempio n. 4
0
int full(stack *my_stack)
{
    if (Stack_OK(my_stack))
        Stack_dump(my_stack);
    if(my_stack->size == my_stack->Max)
        return -1;
    else
        return 0;
}
Esempio n. 5
0
// delete stack
int Destroy(stack *my_stack)
{

    if (Stack_OK(my_stack))
        return -1;
    free(my_stack->data);
    free(my_stack);
    errno = 0;
    return 0;
}
Esempio n. 6
0
//show last element
double topp(stack *my_stack)
{
     errno = 0;
    Stack_OK(my_stack);
    if (!errno)
        return my_stack->top;
    else
        Stack_dump(my_stack);
    return -1;
}
Esempio n. 7
0
// delete element
double pop(stack *my_stack)
{
    errno = 0;
    Stack_OK(my_stack);
    if ((!errno) && (!empty(my_stack)))
        {
            return my_stack->data[--my_stack->size];
        }
    else
        return NAN;
}
Esempio n. 8
0
void Dump (struct Stack_t *This) {
    int i;
    assert (Stack_OK(This));
    printf("array =");
    for (i= 0; i < This->size; i++) {
        printf (" %d ", This->array[i]);
    }
    printf("\n");
    printf("top  = %d\n", This->top);
    printf("size = %d\n", This->size);    
}
Esempio n. 9
0
// get stack_size
int stack_size(stack *my_stack)
{
    if(Stack_OK(my_stack))
        return -1;
    return my_stack->size;
}
Esempio n. 10
0
void Push (struct Stack_t *This, int element){
    assert(Stack_OK(This));
    This->array[This->top++] = element;       
}
Esempio n. 11
0
int Pop(struct Stack_t *This){
    assert(Stack_OK(This));
    assert(This->top >= 1);
    return This->array[--(This->top)];       
}