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

R>Здравствуйте, Viator, Вы писали:


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


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

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

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


Вот так?
struct  Node {
int data;
Node* link;
};
   Node*dummy;
   Node* first;
   Node* last;
   int size;
   public:
      linklist( )
         {
           last=NULL;
           dummy=new Node;
           dummy->link=dummy;
           first=dummy;
           size=0; }

      void CreateNewList()
      {Node* Q;
           for (int i=0; i<5; i++)
           {
              Q=new Node;
              Q->data=rand()%230;
              dummy->link=Q;
              dummy=Q;
              size++;
           }
           last=Q;
           last->link=dummy;
      }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.