Witam!
Mam pewien problem, napisałem kolejkę zrobioną na liście i mam za zadanie sformatować ją tak aby jeżeli w kolejce mamy wartość = 5 to ma ona wystąpić pięć razy. W tym kodzie poniżej przedstawiam moje rozwiazanie aczkolwiek ono jest źle, a nie potrafię znaleźć błędu. Wyświetla ono ->5->5->5->5->5->NULL, a powinno ->5->5->5->5->5->6->6->6->6->6->6->NULL. Proszę o poradę i pomysł jak to naprawić.
#include <iostream>
using namespace std;
struct node
{
int val;
node * next;
};
node * head = NULL;
node * tail = NULL;
void addnode(int wartosc)
{
node * pom;
pom=new node;
pom->val=wartosc;
for (int i=pom->val; i>0 ; i--)
{
if ((head==NULL) && (tail==NULL))
{
head=pom;
tail=pom;
}
else
{
tail->next=pom;
tail=pom;
tail->next=NULL;
}
}
}
void delnode()
{
if(head!=NULL) {
node * pom;
pom = head;
head=head->next;
delete pom;
}
else cout << "Stos jest pusty" << endl;
}
void show()
{
if (head != NULL && tail != NULL)
{
node * pom;
pom = head;
for (int i = pom->val ; i>0 ; i--)
{
cout << "->" << pom -> val;
pom->next=pom;
}
cout << "->NULL"<<endl;
}
else cout << "Kolejka pelna"<<endl;
}
int main()
{
addnode(5);
addnode(6);
show();
system ("pause");
return 0;
}