Advertisement
Tobiahao

Kolokwium_06

Apr 26th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. /*
  2. Znajdz minimum na stosie
  3. */
  4. #include <stdio.h>
  5. #define MAX_STACK_SIZE 10
  6.  
  7. struct stack_str {
  8.     int data[MAX_STACK_SIZE];
  9.     int top;
  10. } stack;
  11.  
  12. int push(struct stack_str *stack, int data)
  13. {
  14.     if(stack->top >= MAX_STACK_SIZE){
  15.         fprintf(stderr, "Stack overflow!\n");
  16.         return -1;
  17.     }
  18.     else{
  19.         stack->top++;
  20.         stack->data[stack->top] = data;
  21.         return data;
  22.     }
  23. }
  24.  
  25. int pop(struct stack_str *stack)
  26. {
  27.     if(stack->top <= -1){
  28.         fprintf(stderr, "Stack is empty!");
  29.         return -1;
  30.     }
  31.     else{
  32.         int tmp = stack->data;
  33.         stack->top--;
  34.         return tmp;
  35.     }
  36. }
  37.  
  38. int find_min(struct stack_str stack)
  39. {
  40.     if(stack.top <= -1){
  41.         fprintf(stderr, "Stack is empty!\n");
  42.         return -1;
  43.     }
  44.     else{
  45.         int min = stack.data[0];
  46.         int i;
  47.         for(i = 0; i <= stack.top; i++){
  48.             if(stack.data[i] < min)
  49.                 min = stack.data[i];
  50.         }
  51.         return min;
  52.     }
  53. }
  54.  
  55. int main(void)
  56. {
  57.     stack.top = -1;
  58.  
  59.     push(&stack, 3);
  60.     push(&stack, 7);
  61.     push(&stack, 1);
  62.  
  63.     printf("Stack minimum: %d\n", find_min(stack));
  64.  
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement