[C++] Dodawanie elementu do listy Jednokierunkowej
Ostatnio zmodyfikowano 2015-05-14 22:24
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 void Add( Node *( & wsk_first ), int k ) { if( wsk_first == NULL ) { wsk_first = new Node( k ); } else { Node * tmp = wsk_first; while( tmp->NEXT ) { 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! |
|
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. |
|
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 ?? ) ?? |
|
pekfos |
» 2015-05-14 22:23:53 Tak się dzieje. |
|
patryk4544 Temat założony przez niniejszego użytkownika |
re » 2015-05-14 22:24:53 Dziękuje serdecznie za odpowiedz! |
|
« 1 » |