/ / Wstawiona lista połączona w C-c, lista-połączona

Wstawiona lista połączona na C-c, połączona lista

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 № 1

Typowym 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.