Здравствуйте, Viator, Вы писали:
V>>>>прямо как во всех книгах... я это уже прочитал не раз и не два, а как реализовать односвязный кольцевой список додумаваете сами называется...
V>>>я создал вот такой список V>>>как сюда добавить фиктивный элемент?
R>>Просто возьми и добавь, прямо при создании списка. Можешь даже создавать его не оператором new, а разместить прямо в объекте списка. И замкни этот узел сам на себя. Это специальный скрытый элемент, список, не содержащий узлов, кроме этого, считается пустым. Элемент следующий сразу за ним — это начало списка. Вставка нового элемент ПЕРЕД этим элементом, будет соответствовать вставке в конец списка, а вставка сразу ПОСЛЕ него — это вставка в начало списка.
V>Вот так? V>...
Ну типа того. Только поле "first" здесь совершенно лишнее — вместо него (везде, где оно используется) лучше использовать dummy->link. Само же поле "dummy" лучше встроить прямо в структуру списка, а не выделять в динамике (смотри поле "nil" в примере Don Reba). Поле "last" тоже можно выкинуть (пока, по крайней мере) — оно нужно только для операции вставки В КОНЕЦ списка, без которого, вероятно можно обойтись.
--
Справедливость выше закона. А человечность выше справедливости.