Witam
Mam problem z ustawieniem wskaźnika w kolejce na sam jej początek. Dodając elementy do kolejki, a następnie je usuwając program usuwa mi elementy ostatnie przez co działa to jako LIFO zamiast FIFO.
struct kolejka{
int wartosc;
kolejka *next;
};
void dodaj(kolejka* *tail, int x)
{
kolejka *w;
w=new kolejka;
w->wartosc=x;
w->next=*tail;
*tail=w;
}
void wyswietl(kolejka* tail)
{
while(tail!=NULL)
{
cout<<tail->wartosc<<" -> ";
tail=tail->next;
}
cout<<endl;
}
void usun(kolejka* &tail)
{
kolejka *w;
if(tail!=NULL)
{
w=tail;
tail=tail->next;
delete w;
}
else
cout<<"Kolejka jest pusta"<<endl;
}
int main()
{
srand(time(NULL));
kolejka *tail=NULL;
dodaj(&tail, 10);
dodaj(&tail, 15);
dodaj(&tail, 20);
dodaj(&tail, 25);
dodaj(&tail, 30);
wyswietl(tail);
usun(tail);
usun(tail);
usun(tail);
wyswietl(tail);
return 0;
}
Dla przykładu plik usuwa mi cyfry 30, 25, 20 a chce zeby mi usuną cyfry 20, 15, 10.
Z góry dzięki za pomoc.