I used a funny bit like this in a program of mine once ...
stack_el_t *_internal_stack (int fn, stack_el_t *element){ static stack_el_t *stack_head = NULL; static stack_tail = NULL; switch (fn) { case PUSH: stack_tail->next = ... ; break; case POP: if (NULL != stack_head) { ... return (old_tail);} break; case PEEP: return (NULL == stack_head); } return (NULL);}void push (stack_data_type data){ _internal_stack (PUSH, new_stack_element (data));}stack_data_type pop (){ stack_el_t *popped = _internal_stack (POP, NULL); if (popped != NULL) { stack_data_type data = popped->data; free_stack_element (popped); return data; } return (NULL);}int is_empty (){ return (_internal_stack (PEEK, NULL));}
... and the litle details you can fill in, like the stack_el_t type and the adding/removing which is somewhat dependant thereupon.
quote:Original post by SauronTheDark
I want to be able to put values into a stack and retrive them in revers order like this:
ADD:
ABCD
RETRIVE:
DCBA
can anyone please help me if you can understand what i am going on about
#define BLOODY_WORK_THIS_TIME;