Stack create, push, pop, empty operations
 typedef struct _stack {
 int top;
 void* array[20];
} Stack;
Stack* createStack()  
 {  
   Stack *stack = malloc(sizeof(Stack));  
   memset(stack, 0, sizeof(Stack));  
   return stack;  
 }  
   
 void push(Stack* stack, void* elem)  
 {  
   stack->array[stack->top] = elem;  
   stack->top += 1;  
 }  
   
 void* pop(Stack* stack)  
 {  
   void* elem = stack->array[stack->top-1];  
   stack->top -= 1;  
   return elem;  
 }  
 void* top(Stack* stack)
 {
   if (stack->top == 0)
     return NULL;
   return stack->array[stack->top-1];
 }
   
 int isEmpty(Stack* stack)  
 {  
   return stack->top;  
 }  
No comments:
Post a Comment