Implement Stack Using Queues

#define STACK_SIZE 100

typedef struct {
int *value;
int count;
} MyStack;

MyStack* myStackCreate() {
MyStack *stack = malloc(sizeof(MyStack));
memset(stack, 0, sizeof(MyStack));
stack->value = malloc(sizeof(int)*STACK_SIZE);
memset(stack->value, 0, sizeof(MyStack));

return stack;

}

void myStackPush(MyStack* obj, int x) {
obj->value[obj->count++] = x;
}

int myStackPop(MyStack* obj) {
if(obj->count<=0) return -1;
int temp = obj->value[--obj->count];

return temp;

}

int myStackTop(MyStack* obj) {
if(obj->count<=0) return -1;
return obj->value[obj->count-1];
}

bool myStackEmpty(MyStack* obj) {
if(obj->count<=0) return true;

return false;

}

void myStackFree(MyStack* obj) {
free(obj->value);
free(obj);
}

Comments (0)