Двунаправленные связанные списки
Каждый элемент двунаправленного связанного списка имеет два указателя
(рис. 2.3) [8, И]:
• один указатель установлен на предшествующий элемент;
• другой указатель установлен на следующий элемент. Двунаправленный список может быть линейным и циклическим (рис. 2.4). Над линейными двунаправленными списками могут выполняться
следующие операции [8]:
• получение доступа к k-шу узлу для проверки или изменения содержимого его полей;
• вставка нового узла сразу после или до k-то узла;
• удаление k-то узла;
• объединение нескольких списков в один;
• разбиение списка на несколько списков;
• создание копии списка;
• определение количества узлов в списке;
• сортировка узлов в порядке возрастания значений в определенных полях;
• поиск узла с заданным значением в некотором поле.
| ptrnl | info | ptrn2 | ||
| поле адреса поле поле адреса | ||||
| предыдущего информации следующего | ||||
| элемента элемента | ||||
| списка списка | ||||
| (левого (правого | ||||
| элемента) элемента) | ||||
Рис. 2.3. Элемент двунаправленного списка
ЛИНЕЙНЫЙ ДВУНАПРАВЛЕННЫЙ СПИСОК
ptrn1=NULL
ptrn2=NULL