funkcja usunZDodatkiem problem c++
Ostatnio zmodyfikowano 2022-08-09 21:15
tybik843 Temat założony przez niniejszego użytkownika |
funkcja usunZDodatkiem problem c++ » 2022-08-09 17:35:27 Cześć mam problem zgubiłem sie podczas pisania funkcji usunZDodatkiem
void sznur::usunZDodatkiem() { Node*zaszuk=nullptr; Node*szuk=pocz; while(szuk!= nullptr && szuk->nast!= nullptr) { if(szuk->dane!=szuk->nast->dane) { zaszuk=szuk->nast; szuk=szuk->nast->nast; continue; } if(zaszuk==nullptr) { pocz=szuk->nast->nast; delete szuk->nast; delete szuk; szuk=pocz; } else { zaszuk->nast=szuk->nast->nast; delete szuk->nast; delete szuk; szuk=zaszuk->nast; } int war=szuk->dane; if(szuk->nast!= nullptr && szuk->nast->dane==war) { Node*killer=szuk; szuk=szuk->nast; if(zaszuk!= nullptr) { zaszuk->nast=killer->nast; } else { pocz=killer->nast; } delete killer; ileJest--; } else { zaszuk=szuk; szuk=szuk->nast; } } } //7 7 6 5 3 3 3 2 1 1 1 1 wynik 6 5 2 1 //9 9 9 6 6 6 5 5 sznur jest pusty //5 5 5 5 4 4 4 2 1 wynik 5 4 2 1 Dla ostatniego sznura działa i proszę o pomoc i nakierowanie mnie gdzie popełniłem błąd proszę tylko o pomoc z rozwiązaniem poradzę sobie sam
oto zadanie:
funkcję usunZDodatkiem rozpatrującą rozłączne pary elementów sznura i usuwającą całą parę jeśli zawiera równe wartości. Dodatkowo, jeżeli element następujący bezpośrednio po usuniętej parze zawiera tę samą wartość co usuwane, to też jest usuwany (usuwamy jeden dodatkowy element; w tym przypadku nie jest on uwzględniany w kolejnej parze). Pary wybierane są tak, że pierwszy element sznura jest początkowym elementem pierwszej pary. Funkcja nie może używać tablic, pomocniczych sznurów ani struktur danych dostępnych w bibliotece standardowej (wektorów, list, kolejek, itp);
Poprawiłem kod teraz jest moje pytanie czy jest wszystko ok treść zadania taka sama void sznur::usunZDodatkiem() { Node*zaszuk=nullptr; Node*szuk=pocz; while(szuk!= nullptr && szuk->nast!= nullptr) { if(szuk->dane!=szuk->nast->dane) { zaszuk=szuk->nast; szuk=szuk->nast->nast; continue; } int war=szuk->dane; if (zaszuk == nullptr) { pocz = szuk->nast->nast; delete szuk->nast; delete szuk; szuk = pocz; } else { zaszuk->nast = szuk->nast->nast; delete szuk->nast; delete szuk; szuk = zaszuk->nast; } if(szuk!= nullptr && szuk->dane==war) { if (zaszuk == nullptr) { pocz = szuk->nast; delete szuk; szuk = pocz; } else { zaszuk->nast = szuk->nast; delete szuk; szuk = zaszuk->nast; } } } } |
|
DejaVu |
» 2022-08-09 21:15:31 |
|
« 1 » |