Ostatnio zacząłem pracować z listami połączonymi. Aby wcisnąć element do listy połączonej w funkcji insert (...), widziałem, że zawsze sprawdzamy, czy (head == NULL), ale występuje tylko raz.
Chcę wiedzieć, czy jest jakiś sposób, żebyśmy moglizawsze unikaj niepotrzebnego czeku. Proszę zaproponować coś, co byłoby istotne dla większości operacji na połączonej liście. Jednym z rozwiązań, które wymyśliłem, jest napisanie nowej funkcji „add_first_element (....)”, aby wyraźnie dodać pierwszy element, a następnie inne elementy zostaną dodane w ogólny sposób.
Szukam lepszego rozwiązania.
Odpowiedzi:
1 dla odpowiedzi № 1Typowym sposobem jest użycie węzła wartowniczego. Oznacza to, że węzeł nie zawiera żadnych użytecznych danych, a jedynie służy jako symbol zastępczy dla jednego przed pierwszy węzeł. W ten sposób nie musisz sprawdzać wartości null.
W przypadku listy podwójnie połączonej potrzebne będą dwa węzły wartownicze, aby uniknąć sprawdzania wartości zerowej.