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