Re[8]: Фиктивный узел, как создать?
От: rg45 СССР  
Дата: 18.11.13 07:38
Оценка:
Здравствуйте, Viator, Вы писали:

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


V>>>я создал вот такой список

V>>>как сюда добавить фиктивный элемент?

R>>Просто возьми и добавь, прямо при создании списка. Можешь даже создавать его не оператором new, а разместить прямо в объекте списка. И замкни этот узел сам на себя. Это специальный скрытый элемент, список, не содержащий узлов, кроме этого, считается пустым. Элемент следующий сразу за ним — это начало списка. Вставка нового элемент ПЕРЕД этим элементом, будет соответствовать вставке в конец списка, а вставка сразу ПОСЛЕ него — это вставка в начало списка.


V>Вот так?

V>...

Ну типа того. Только поле "first" здесь совершенно лишнее — вместо него (везде, где оно используется) лучше использовать dummy->link. Само же поле "dummy" лучше встроить прямо в структуру списка, а не выделять в динамике (смотри поле "nil" в примере Don Reba). Поле "last" тоже можно выкинуть (пока, по крайней мере) — оно нужно только для операции вставки В КОНЕЦ списка, без которого, вероятно можно обойтись.
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.