Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 1-34 / 11.Линейный двусвязный список . Массив

.pdf
Скачиваний:
78
Добавлен:
11.05.2015
Размер:
246.08 Кб
Скачать

11. Линейный двусвязный список. Реализация на массиве

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

Каждый элемент такого списка содержит два указателя:

1)прямой – на следующий элемент списка;

2)обратный – на предыдущий элемент списка.

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

Алгоритм вставки после К элемента InsertAfter (i, c):

1.j <- Free//индекс свободного элемента

2.Free <- List [j].next

3.List[j].info <- C//заносим информацию

4.K <- List[i].next//индекс нового свободного элемента

5.List[i].next <-j//индекс следующего элемента

6.List[j].next <-K//смена указателя предыдущего элемента

7.List[j]Pred <-i//занесение информации

8.List[K].Pred <- j//указатель на следующий элемент