Cześć mam problem z zadaniem oto jego treść
Funkcja usuń ropatrujaca rozlączne trójki elementów sznura i usuwającą cała trójkę jeśłi zawiera równe wartości. Dodatkowo, jeżeli następny element następujący bezpośrednio po usuniętej trójce zawiera mniejszą od usuwanych o co najwyżej K to też usuwamy
(w tym przypadku nie jest on uwzględniany w kolejnych trójkach),K jest liczbą czałkowitą dodatnią będącą parametrem funkcji. Trójki wybierane są tak że pierwszy element sznura jest początkowym elementem sznura jest początkowym elementem pierwszej trójki
Pamieć zajmowania przez usuwanie elementy ma zostać zwolniona. funkcja nie może używać tablic,pomocniczych sznurów ani struktur dancyh
dostepnych w biblioteve standarowej(wektorów,list,kolejek,itp);
Oto mój kod
void sznur::usun(int K)
{
Node*zaszuk=nullptr;
Node*a=pocz;
while(a!=nullptr && a->nast!=nullptr && a->nast->nast!=nullptr)
{
Node*jeden=a;
Node*dwa=a->nast;
Node*trzy=a->nast->nast;
if(jeden->dane==dwa->dane && dwa->dane==trzy->dane)
{
if(zaszuk!=nullptr)
{
zaszuk->nast=trzy->nast;
}
else
{
pocz=trzy->nast;
}
if(zaszuk!=nullptr)
{
a=zaszuk->nast;
}
else
{
a=pocz;
}
delete jeden;
delete dwa;
delete trzy;
ileJest=ileJest-3;
}
else if(dwa->dane<=K)
{
if(zaszuk!=nullptr)
{
zaszuk->nast=trzy;
}
else
{
pocz=trzy;
}
if(zaszuk!=nullptr)
{
a=zaszuk->nast;
}
else
{
a=pocz;
}
delete jeden;
delete dwa;
delete trzy;
ileJest=ileJest-3;
}
else
{
zaszuk=trzy;
a=zaszuk->nast;
}
}
}
//7 7 6 3 3 3 2 1 1 1 1 1 -> 7 7 6 1
//9 9 9 6 6 6 4 -> pusty
//9 7 6 5 5 5 3 2 1 -> 9 7 6 3 2 1
problem jest tylko przy sznure 9 9 9 6 6 6 4 nie staje sie pusty tylko wyświetla 4 na końcu i nie wiem jak tą 4 usunąć gdzie jest błąd w kodzie proszę o pomoc z góry dzięki