Алгоритм вставки элемента в список после элемента с указанным ключом
Вставить в список элемент после элемента, значение информационной части (ключ) которого совпадает со значением, введенным с клавиатуры.
Решение данной задачи проводится в два этапа – поиск и вставка.
Первый этап аналогичен рассмотренному в алгоритме удаления, а второй проводится только при условии, что искомый элемент найден, т.е. указатель на него key не равен NULL.
Этап второй – вставка
1. Захватываем память под новый элемент
t = (Spis*) malloc(sizeof(Spis));
2. Формируем информационную часть:
scanf(“%d”, &t -> info);
3. Связываем новый элемент с предыдущим
t -> Prev = key;
4. Связываем новый элемент со следующим
t -> Next = key -> Next;
5. Связываем предыдущий элемент с новым
key -> Next = t;
6. Если элемент добавляется не в конец списка (как показано на схеме ниже), т.е. key != end, то
( t -> Next ) -> Prev = t;
7. Иначе, если key = end, то указатель key->Next равен NULL (в п. 4 установлено окончание списка) и новым последним становится t
end = t;
Общая схема вставки элемента:
Алгоритм освобождения памяти, занятой списком,аналогичен рассмотренному алгоритму для стека (см. разд. 15.2).
Дата добавления: 2015-09-11; просмотров: 1470;