Однонаправленные циклические списки

Одним из недостатков линейных списков является то, что имея указатель р на элемент, мы не можем получить доступа к предшествующим элементам.

Циклический связанный список— это список, в котором последний узел связан с первым узлом [11]. Чтобы превратить линейный список в циклический необходимо в поле адреса последнего элемента записать не NULL, а адрес первого элемента списка 1st (рис. 2.2).

 

 

 

 

1st ----------------------------------- »■         jiiutiT 1st
info pirn —*■ info ptrn ----- и- ... —и- mfo ptrn  
  .          
     
                   

Рис. 2.2. Графическое представление циклического списка

В циклическом списке всегда существует возможность доступа к любому элементу, начиная с произвольно выбранного узла.

Простейшие операции над циклическим списком [11]:

1) размещение нового узла после элемента с известным адресом/?;

2) удаление узла после элемента с известным адресом/?.

В виде циклического стека организуются стеки и очереди. Недостатки циклического списка:

1) список нельзя просматривать в обратном направлении;

2) располагая только значением указателя на элемент, его невозможно удалить.


Для преодоления этих недостатков используются двунаправленные связанные списки.