Witam!
Ucząc się języka C robię sb zadania różne no i kolejne jakie mam zrobić jest dla mnie trochę problematyczne bo po prostu nie rozumiem o co mnie proszą w treści tego zadania...
oto one:
Napisać program, który w tablicy int kolejka[10] realizuje kolejkę jako tablicę cykliczną (tj. jako tablicę z adresowaniem elementów modulo 10) ze zdefiniowanymi funkcjami wstaw() i usun(). Ogólna postać programu jak w poprzednim zadaniu. Zastosować notację wskaźnikową w celu dostępu do elementów tablicy.
No i właśnie nwm co wgl mam zrobić i jak by miało to wyglądać. Poniżej wklejam kod tego "poprzedniego zadania". Domyślam się że całość co będę musiał zrobić to jakieś małe dodatki i tyle.
#include <stdio.h>
#include <stdlib.h>
typedef struct element{
int value;
struct element *next;
}element;
/*funkcja umieszczająca elem na szczycie stosu*/
void push(element **stos, int elem){
element* biezacy; /*tymczasowa komorka*/
if((biezacy=(element*)malloc(sizeof(element)))==NULL)/*gdyby stos był pusty*/
return ;
else{
biezacy->value=elem; /*przypisanie do komorki stosu pobranej wartosci*/
biezacy->next=*stos; /*przypisanie aktualnej informacji do stosu*/
*stos=biezacy;
}
}
/*funkcja zdejmująca elem ze szczytu stosu*/
void pop(element **stos,int elem){
element *tmp;
if(stos!=NULL){
tmp=*stos;
elem=tmp->value;
*stos=tmp->next;
free(tmp);
return ;
}
else {
printf("Blad brak danych\n");
return;}
}
/*funkcja drukująca w strumieniu wyjscia (stdout) cały stos*/
void print(element *stos){
if(stos==NULL)
printf("Brak elementow\n");
else
do{
printf("%5d\n",stos->value);
stos=stos->next;
}while (stos!=NULL);
}
int main(){
element *stos=NULL;
int wybor;
int elem=0;
printf("MENU:\n");
printf("0-zakoncz\n");
printf("1-dodaj do stosu\n");
printf("2-usun liczbe\n");
printf("3-wyswietl\n");
for(;;)
{
printf("~");
scanf("%d",&wybor);
switch(wybor){
case 0:
exit(0);
break;
case 1:
{
printf("Podaj liczbe:");
scanf ("%d",&elem);
push(&stos,elem);
}
break;
case 2:
pop(&stos,elem);
break;
case 3:
print(stos);
break;
default:
printf("Blad, brak takiej opcji\n");
break;
}
}
return 0;
}