2013-09-08 7 views
0

Я недавно начал работать со связанными списками. Чтобы вставить элемент в связанный список в функции insert (...), я видел, что мы всегда проверяем, есть ли (head == NULL), но это происходит только один раз.Связанный список вставить в C

Я хочу знать, есть ли способ, чтобы мы всегда могли избежать ненужной проверки. Пожалуйста, предложите что-то, что будет иметь отношение к большинству операций с связанным списком. Одно из решений, которое я понял, - это запись новой функции «add_first_element (....)», так что явным образом мы добавляем первый элемент, а затем добавляем другие элементы общим образом.

Я ищу лучшее решение.

ответ

1

Общим способом является использование узла-дозорника. То есть узел, который не содержит полезных данных, а просто служит заполнителем для одного до первого узла. Таким образом, вам не нужно проверять значение null.

Для двойного списка вам понадобятся два дозорных узла, чтобы избежать нулевой проверки.

+0

Спасибо ... @ C.R. но это может иногда стоить памяти .... нет ли другой альтернативы, которая не потребляет память? –

+0

@JagannathSuhit: память одного узла в какой-то мере равна объему всего связанного списка, если вы не используете связанный список только для нескольких объектов (в этом случае массив лучше из любого аспекта). –

+0

да, это получилось, спасибо :) @ C.R. –

Смежные вопросы