• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

usun rozpatrującą rozłączne trójki elementów sznura

0 głosów
386 wizyt
pytanie zadane 15 kwietnia 2023 w C i C++ przez martinez369 Użytkownik (520 p.)
edycja 15 kwietnia 2023 przez Arkadiusz Waluk

Cześć mam problem z tą funckją

Treść:

funkcję usun rozpatrującą rozłączne trójki elementów sznura i usuwającą te z elementów trójki,
które nie zawierają wartości najmniejszej w obrębie takiej trójki (w każdej trójce pozostaje jeden,
dwa lub trzy elementy w zależności od tego czy wartość najmniejsza się powtarza). W przypadku
sznura o długości nie podzielnej przez 3 końcowe elementy (nie wchodzące w skład żadnej trójki –
trójki wybierane są tak, że pierwszy element sznura jest początkowym elementem pierwszej trójki)
są modyfikowane tylko gdy są przynajmniej dwa i mają różne wartości (usuwany jest ten
przechowujący większą wartość). Pamięć zajmowana przez usuwane elementy ma zostać
zwolniona. Funkcja nie może używać tablic, pomocniczych sznurów ani struktur danych
dostępnych w bibliotece standardowej (wektorów, list, kolejek, itp);

Kod:

void sznur::usun()
{
    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)
        {
            Node*killer=jeden;
            a=trzy;
            if(zaszuk!=nullptr)
            {
                zaszuk->nast=trzy;
            }
            else
            {
                pocz=jeden;
            }
            delete killer;
            ileJest--;
        }
        else
        {
            zaszuk=jeden;
            a=zaszuk->nast;
        }
    }
}

Pytanie gdzie jest błąd co robie źle i w którym miejscu poprawić

przykład dla sznura 4 7 5 1 6 1 7 3 2 9 1 -> 4,1,1,2,1,

a mi wychodzi

4 7 5 1 6 1 7 3 2 9 1 -> 4 , 1 , 6 , 1 , 2 , 9 , 1 ,gdzie może być błąd

komentarz 15 kwietnia 2023 przez Arkadiusz Waluk Ekspert (290,250 p.)

Prośba na przyszłość, aby kod na forum wstawiać w przeznaczony do tego bloczek, dzięki czemu jest on znacznie czytelniejszy.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 174 wizyt
0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 6 marca 2023 w C i C++ przez martinez369 Użytkownik (520 p.)
0 głosów
1 odpowiedź 393 wizyt

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...