All pastes #799672 Raw Edit

Anonymous

public text v1 · immutable
#799672 ·published 2007-11-27 20:27 UTC
rendered paste body
/*
 * iz prvog stoga prebaci u drugi stog
 * obrnutim redoslijedom
 * 
 */

#include <stdio.h>
#define SIZE 5

int dodaj(int *stavka, int *stog, int n, int *vrh);
int skini(int *stavka, int *stog, int *vrh);
void izmjeni(int *stog1, int *vrh1, int *stog2, int *vrh2, int n);

int main()
{
   int S1[] = {1, 2, 3, 4, 5};
   int S2[SIZE];
   int vrh1 = 4;
   int vrh2 = -1;
   int n = 5;
   
   izmjeni(S1, &vrh1, S2, &vrh2, n);
   // prvi stog
   printf("%d %d %d %d %d\n", S1[0], S1[1], S1[2], S1[3], S1[4]);
   // drugi stog
   printf("%d %d %d %d %d\n", S2[0], S2[1], S2[2], S2[3], S2[4]);
   
   getche();
   return 0;
}

int dodaj(int *stavka, int *stog, int n, int *vrh)
{
   if (*vrh > n-1)
      return 0;
   (*vrh)++;
   stog[*vrh] = *stavka;
   return 1;
}

int skini(int *stavka, int *stog, int *vrh)
{
   if (*vrh < 0) 
      return 0;
   *stavka = stog[*vrh];
   (*vrh)--;
   return 1;
}

void izmjeni(int *stog1, int *vrh1, int *stog2, int *vrh2, int n)
{
   // privremena pohrana
   int broj;
   // dok god nije kraj stoga
   while (*vrh1 > -1) {
      skini(&broj, stog1, vrh1);
      dodaj(&broj, stog2, n, vrh2);
   }
}