Witam mam program, który pokazuje działanie stosu i muszę przerobić go tak, żeby pokazywał działanie kolejki. Program działa na liczbach %100. Również jest w nim tzw rzut monetą, to czy program ma dodać czy zdjąć element z stosu.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
#define maxS N-1
int empty(int S[]){
if(S[0]<0)
S[0] = 0;
return !S[0];
}
int push(int S[], int x){
if(S[0]<maxS) {
S[++S[0]] = x;
return 0; //wszystko ok
}else return 1; //nie udalo sie zapisac zmiennej
}
int pop(int S[]){
return S[S[0]--]; //przesuwam wskaznik szczytu stosu
}
int main()
{
int i, j, k;
int P[N], Q[N];
P[0] = Q[0] = 0; //na poczatku stosy puste
srand(time(NULL));
for(i=0; i<30; ++i){
k=rand()%100;
if(rand()%4){ //rzut moneta - zdjac czy dodac do stosu, losowanie ktora czynnosc wybrac
j=push(P, k);
if(j)
printf("Brak miejsca w stosie\n");
else
printf("Zapisano liczbe %i na stosie\n", k);
}else{
if(!empty(P)){
k=pop(P);
printf("Zdjeto liczbe %i ze stosu\n", k);
}else
printf("Stos jest pusty\n");
}
}
system("pause");
return 0;
}