Advertisement
maxim_shlyahtin

stack_example

Apr 17th, 2023 (edited)
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.67 KB | None | 0 0
  1. #include <stdlib.h>
  2. #define STACK_MAX_SIZE 50
  3. #define STACK_OVERFLOW 1
  4. #define STACK_UNDERFLOW 0
  5. typedef int T;
  6.  
  7.  
  8. typedef struct Stack_tag {
  9.     T data[STACK_MAX_SIZE];
  10.     size_t size;
  11. } Stack_t;
  12.  
  13. void push(Stack_t *stack, const T value) {
  14.     if (stack->size >= STACK_MAX_SIZE) {
  15.         exit(STACK_OVERFLOW);
  16.     }
  17.     stack->data[stack->size] = value;
  18.     stack->size++;
  19. }
  20.  
  21. T pop(Stack_t *stack){
  22.     if (stack->size == 0) {
  23.         exit(STACK_UNDERFLOW);
  24.     }
  25.     stack->size--;
  26.     return stack->data[stack->size];
  27. }
  28.  
  29. T peek(Stack_t* stack){
  30.     if (stack->size <= 0) {
  31.         exit(STACK_UNDERFLOW);
  32.     }
  33.     return stack->data[stack->size - 1];
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement