Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Dodawanie elementu do listy Jednokierunkowej

Ostatnio zmodyfikowano 2015-05-14 22:24
Autor Wiadomość
patryk4544
Temat założony przez niniejszego użytkownika
[C++] Dodawanie elementu do listy Jednokierunkowej
» 2015-05-14 22:01:17
Witam serdecznie.

Pytanie dość teoretycznie, bo chcę zrozumieć jedną rzecz.

Mianowicie w poniższym kodzie :

http://pastebin.com/upRDY24i
C/C++
void Add( Node *( & wsk_first ), int k )
{
    if( wsk_first == NULL )
    {
        wsk_first = new Node( k );
       
       
    }
    else
    {
        Node * tmp = wsk_first;
        while( tmp->NEXT ) //<<------ Chodzi o to !!
        {
           
            tmp = tmp->NEXT;
           
           
        }
       
        tmp->NEXT = new Node( k );
       
    }
}
Mam funkcję, która zajmuje się dodawaniem elementu do listy.

Pytanie :

Czym w działaniu różni się zapis while(tmp) - który nie działa, od zapisu while(tmp->Next) ??
Chodzi mi o różnice w działaniu najbardziej, gdyż próbuje zrozumieć dlaczego nie działa, mimo że wydawało mi się ze powinien.

Pozdrawiam!
P-132276
pekfos
» 2015-05-14 22:18:28
Po while(tmp), tmp jest pustym wskaźnikiem. Pętla w tym kodzie wykonuje się, dopóki element następny po tmp nie jest pustym wskaźnikiem, więc, po zakończeniu pętli, w tmp masz ostatni element listy.
P-132280
patryk4544
Temat założony przez niniejszego użytkownika
re
» 2015-05-14 22:23:12
Czyli rozumiem że dochodzi do sytuacji NULL->NEXT = new Node i dlatego program zgłasza błąd, czy
dzieje się inaczej ( jak w takim razie ?? ) ??
P-132281
pekfos
» 2015-05-14 22:23:53
Tak się dzieje.
P-132282
patryk4544
Temat założony przez niniejszego użytkownika
re
» 2015-05-14 22:24:53
Dziękuje serdecznie za odpowiedz!
P-132283
« 1 »
  Strona 1 z 1