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

question-closed lista dwukierunkowa

0 głosów
462 wizyt
pytanie zadane 2 listopada 2017 w C i C++ przez Kasia Nowicjusz (230 p.)
zamknięte 2 listopada 2017 przez criss

Witam, mam problem z lista dwukierunkową. Funkcja insert podczas dodawania na koniec listy nie przepina wskaźnika końca. Chodzi dokładnie o instrukcje w if. Wszystko sobie rozpisałam i powinno działać, a jednak coś jest nie tak :( 

class lista{
      public:
             class ogniwo{
                   public:
                   ogniwo * next;
                   ogniwo * prev;
                   int value;
                   };
             class interator{
                   public:
                   ogniwo * wsk;
                   interator next(interator it);
                   };
...
lista::interator lista::insert_list(interator it, int v){
     ogniwo * a = it.wsk;
     ogniwo * b = new ogniwo;
     ogniwo * c = a->next;
     b->next = c;
     b->prev = a;
     b->value = v;
     c->prev = b;
     a->next = b;
     if(b->next == b){
               koniec.wsk =b;
     }
     size++;
     return it;
}

Z góry dzięki za pomoc angel

komentarz zamknięcia: Rozwiązane w komentarzach
komentarz 2 listopada 2017 przez criss Mędrzec (172,570 p.)

W jaki sposób b->next miałoby kiedykolwiek być równe b?

PS: iterator (od "iteracja"), nie interator

komentarz 2 listopada 2017 przez Kasia Nowicjusz (230 p.)
oj, rzeczywiście, już poprawiam, dzięki!

c wskazuje na następny po a, czyli na b.

i skoro b->next=c, to b->.next będzie wskazywał na samego siebie. Coś źle rozumiem?
komentarz 2 listopada 2017 przez Kasia Nowicjusz (230 p.)

Rzeczywiście, nie może. C będzie wskazywało na następny po a, wiec na a, bo jest ostatni. 

Już działa, dzięki wink

Podobne pytania

0 głosów
0 odpowiedzi 225 wizyt
pytanie zadane 27 września 2018 w C i C++ przez KaRoLiNakk Nowicjusz (160 p.)
0 głosów
1 odpowiedź 738 wizyt
pytanie zadane 18 czerwca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
1 odpowiedź 367 wizyt
pytanie zadane 26 maja 2018 w C i C++ przez Roman1212 Początkujący (460 p.)

93,691 zapytań

142,610 odpowiedzi

323,216 komentarzy

63,218 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...