Имея успех с моим последним вопросом CLRS, вот еще один:
В Введение в алгоритмы , второе издание, с.501-502 описано представление связанного списка непересекающихся наборов, в котором каждый член списка поддерживает следующие поля три :
- элемент набора * указатель 1012 *
- на
next
объект - указатель назад на первый объект (набор
representative
).
Хотя связанные списки могут быть реализованы с использованием только одного типа объекта «Ссылка»,учебник показывает вспомогательный объект «Связанный список», который содержит указатель на ссылку «заголовок» и ссылку «хвост».Наличие указателя на «хвост» облегчает операцию Union(x, y)
, поэтому нет необходимости проходить все ссылки в большем наборе x
, чтобы начать добавлять к нему ссылки меньшего набора y
.
Однако для получения ссылки на хвостовую ссылку может показаться, что каждый объект ссылки должен содержать четвертое поле : ссылку на сам вспомогательный объект связанного списка.В таком случае, почему бы не удалить объект Linked List целиком и использовать это четвертое поле, чтобы указать непосредственно на хвост?
Считаете ли вы это упущением в тексте?